Re: More Patches: GtkAboutDialog

From: Date: Thu, 06 Apr 2006 06:20:28 +0000
Subject: Re: More Patches: GtkAboutDialog
References: 1 2 3  Groups: php.gtk.dev 
Request: Send a blank email to php-gtk-dev+get-2719@lists.php.net to get a copy of this message
Thanks, committed (with small changes). -Andrei On Mar 23, 2006, at 9:07 AM, Anant Narayanan wrote:
Andrei, I just realised that by ".txt" attachment you might have meant: "not a diff", and so I'm attaching a plain txt attachment just in case. Regards, -- Anant Find Freedom, Go Open Source! http://www.kix.in/ %% {{{ GtkAboutDialog %% override gtk_about_dialog_get_artists PHP_METHOD {
    gchar **artists;
    NOT_STATIC_METHOD();
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
        return;
    artists = (gchar **)gtk_about_dialog_get_artists(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)));
    if (artists) {
        array_init(return_value);
        while (*artists) {
            add_next_index_string(return_value, *artists, 1);
            *artists++;
        }
    } else {
        RETURN_NULL();
    }
} %% override gtk_about_dialog_get_authors PHP_METHOD {
    gchar **authors;
    NOT_STATIC_METHOD();
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
        return;
    authors = (gchar **)gtk_about_dialog_get_authors(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)));
    if (authors) {
        array_init(return_value);
        while (*authors) {
            add_next_index_string(return_value, *authors, 1);
            *authors++;
        }
    } else {
        RETURN_NULL();
    }
} %% override gtk_about_dialog_get_documenters PHP_METHOD {
    gchar **doccers;
    NOT_STATIC_METHOD();
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
        return;
    doccers = (gchar **)gtk_about_dialog_get_documenters(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)));
    if (doccers) {
        array_init(return_value);
        while (*doccers) {
            add_next_index_string(return_value, *doccers, 1);
            *doccers++;
        }
    } else {
        RETURN_NULL();
    }
} %% override gtk_about_dialog_set_artists PHP_METHOD {
    gchar **artists;
    zval *arr = NULL;
    zval **data;
    int i, arr_count;
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) {
        return;
    }
    if (arr) {
        arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr));
	    artists = safe_emalloc(arr_count+1, sizeof (gchar *), 0);
        for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr));
             zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS;
             zend_hash_move_forward(Z_ARRVAL_P(arr))) {
                convert_to_string_ex(data);
                artists[i++] = Z_STRVAL_PP(data);
        }
        artists[i] = NULL;
        gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)artists);
        efree(artists);
    } else {
        RETURN_NULL();
    }
} %% override gtk_about_dialog_set_authors PHP_METHOD {
    gchar **authors;
    zval *arr = NULL;
    zval **data;
    int i, arr_count;
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) {
        return;
    }
    if (arr) {
        arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr));
	    authors = safe_emalloc(arr_count+1, sizeof (gchar *), 0);
        for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr));
             zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS;
             zend_hash_move_forward(Z_ARRVAL_P(arr))) {
                convert_to_string_ex(data);
                authors[i++] = Z_STRVAL_PP(data);
        }
        authors[i] = NULL;
        gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)authors);
        efree(authors);
    } else {
        RETURN_NULL();
    }
} %% override gtk_about_dialog_set_documenters PHP_METHOD {
    gchar **doccers;
    zval *arr = NULL;
    zval **data;
    int i, arr_count;
    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) {
        return;
    }
    if (arr) {
        arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr));
	    doccers = safe_emalloc(arr_count+1, sizeof (gchar *), 0);
        for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr));
             zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS;
             zend_hash_move_forward(Z_ARRVAL_P(arr))) {
                convert_to_string_ex(data);
                doccers[i++] = Z_STRVAL_PP(data);
        }
        doccers[i] = NULL;
        gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)doccers);
        efree(doccers);
    } else {
        RETURN_NULL();
    }
} %% }}}


« previous php.gtk.dev (#2719) next »