/* Prepends to notebook a page whose content is child, and whose * bookmark is label. */ int clip_GTK_NOTEBOOKPREPENDPAGE(ClipMachine * ClipMachineMemory) { C_widget *cntb = _fetch_cw_arg(ClipMachineMemory); C_widget *cchild = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); C_widget *clabel; GtkWidget *label; CHECKCWID(cntb, GTK_IS_NOTEBOOK); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cchild, GTK_IS_WIDGET); CHECKARG3(3, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType, CHARACTER_type_of_ClipVarType); if (_clip_parinfo(ClipMachineMemory, 3) == CHARACTER_type_of_ClipVarType) { char *caption = _clip_parc(ClipMachineMemory, 3); LOCALE_TO_UTF(caption); label = gtk_label_new(caption); FREE_TEXT(caption); } else { clabel = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 3)); CHECKCWID(clabel, GTK_IS_WIDGET); if (clabel) label = clabel->widget; } gtk_notebook_prepend_page(GTK_NOTEBOOK(cntb->widget), cchild->widget, label); return 0; err: return 1; }
/**** SCROLLED WINDOW constructor ****/ int clip_GTK_SCROLLEDWINDOWNEW(ClipMachine * cm) { ClipVar * cv = _clip_spar(cm, 1); C_widget * chadj = _fetch_cwidget(cm,_clip_spar(cm, 2)); C_widget * cvadj = _fetch_cwidget(cm,_clip_spar(cm, 3)); GtkWidget *wid = NULL; C_widget *cwid; C_widget *chscr, *cvscr; GtkAdjustment *hadj, *vadj; CHECKOPT(1,MAP_t); CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCWIDOPT(chadj,GTK_IS_ADJUSTMENT); CHECKOPT2(3,MAP_t,NUMERIC_t); CHECKCWIDOPT(cvadj,GTK_IS_ADJUSTMENT); hadj = chadj ? GTK_ADJUSTMENT(chadj->widget) : NULL; vadj = cvadj ? GTK_ADJUSTMENT(cvadj->widget) : NULL; wid = gtk_scrolled_window_new(hadj,vadj); if (!wid) goto err; cwid = _register_widget(cm, wid, cv); chscr = _register_widget(cm, GTK_SCROLLED_WINDOW(wid)->hscrollbar, NULL); cvscr = _register_widget(cm, GTK_SCROLLED_WINDOW(wid)->vscrollbar, NULL); if (chscr) _clip_madd(cm,&cwid->obj,HASH_HSCROLLBAR,&chscr->obj); if (cvscr) _clip_madd(cm,&cwid->obj,HASH_VSCROLLBAR,&cvscr->obj); _clip_mclone(cm,RETPTR(cm),&cwid->obj); return 0; err: return 1; }
/* Inserts in notebook a new page whose content is child, and whose bookmark * is tab_label. The page is inserted just before the page number position, * starting with 0. If position is out of bounds, it is assumed to be the * current number of pages. */ int clip_GTK_NOTEBOOKINSERTPAGE(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); C_widget *cchild = _fetch_cwidget(cm,_clip_spar(cm,2)); C_widget *clabel; GtkWidget *label; gint position = _clip_parni(cm,4); CHECKCWID(cntb,GTK_IS_NOTEBOOK); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cchild,GTK_IS_WIDGET); CHECKARG3(3,MAP_t,NUMERIC_t,CHARACTER_t); CHECKOPT(4,NUMERIC_t); if (_clip_parinfo(cm,3)==CHARACTER_t) { char * caption = _clip_parc(cm, 3); LOCALE_TO_UTF(caption); label = gtk_label_new_with_mnemonic(caption); FREE_TEXT(caption); } else { clabel = _fetch_cwidget(cm,_clip_spar(cm,3)); CHECKCWID(clabel,GTK_IS_WIDGET); if (clabel) label = clabel->widget; } if (_clip_parinfo(cm,4)==UNDEF_t) position = 1; gtk_notebook_insert_page(GTK_NOTEBOOK(cntb->widget), cchild->widget, label, position-1); return 0; err: return 1; }
/* Changes the menu label of child. Nothing happens if child is not in notebook. */ int clip_GTK_NOTEBOOKSETMENULABEL(ClipMachine * ClipMachineMemory) { C_widget *cntb = _fetch_cw_arg(ClipMachineMemory); C_widget *cchild = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); C_widget *clabel; CHECKCWID(cntb, GTK_IS_NOTEBOOK); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cchild, GTK_IS_WIDGET); CHECKARG3(3, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType, CHARACTER_type_of_ClipVarType); if (_clip_parinfo(ClipMachineMemory, 3) == CHARACTER_type_of_ClipVarType) { char *menu_text = _clip_parc(ClipMachineMemory, 3); LOCALE_TO_UTF(menu_text); gtk_notebook_set_menu_label_text(GTK_NOTEBOOK(cntb->widget), cchild->widget, menu_text); FREE_TEXT(menu_text); } else { clabel = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 3)); CHECKCWID(clabel, GTK_IS_WIDGET); if (clabel) gtk_notebook_set_menu_label(GTK_NOTEBOOK(cntb->widget), cchild->widget, clabel->widget); } return 0; err: return 1; }
/* Changes the bookmark label of child. Nothing happens if child is not in notebook. */ int clip_GTK_NOTEBOOKSETTABLABEL(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); C_widget *cchild = _fetch_cwidget(cm,_clip_spar(cm,2)); C_widget *clabel; CHECKCWID(cntb,GTK_IS_NOTEBOOK); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cchild,GTK_IS_WIDGET); CHECKARG3(3,MAP_t,NUMERIC_t,CHARACTER_t); if (_clip_parinfo(cm,3)==CHARACTER_t) { char * caption = _clip_parc(cm, 3); LOCALE_TO_UTF(caption); gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(cntb->widget), cchild->widget,caption); FREE_TEXT(caption); } else { clabel = _fetch_cwidget(cm,_clip_spar(cm,3)); CHECKCWID(clabel,GTK_IS_WIDGET); if (clabel) gtk_notebook_set_tab_label(GTK_NOTEBOOK(cntb->widget), cchild->widget,clabel->widget); } return 0; err: return 1; }
/**** Viewport constructor ****/ int clip_GTK_VIEWPORTNEW(ClipMachine * cm) { ClipVar * cv = _clip_spar(cm, 1); C_widget * chadj = _fetch_cwidget(cm,_clip_spar(cm, 2)); C_widget * cvadj = _fetch_cwidget(cm,_clip_spar(cm, 3)); GtkWidget *wid = NULL; C_widget *cwid; GtkAdjustment *hadj, *vadj; CHECKOPT(1,MAP_t); CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCWIDOPT(chadj,GTK_IS_ADJUSTMENT); CHECKOPT2(3,MAP_t,NUMERIC_t); CHECKCWIDOPT(cvadj,GTK_IS_ADJUSTMENT); hadj = chadj ? GTK_ADJUSTMENT(chadj->widget) : NULL; vadj = cvadj ? GTK_ADJUSTMENT(cvadj->widget) : NULL; wid = gtk_viewport_new(hadj,vadj); if (!wid) goto err; cwid = _register_widget(cm, wid, cv); _clip_mclone(cm,RETPTR(cm),&cwid->obj); return 0; err: return 1; }
int clip_GTK_EXTEXTSETADJUSTMENTS(ClipMachine * cm) { C_widget *extext = _fetch_cw_arg(cm); C_widget *chadj = _fetch_cwidget(cm, _clip_spar(cm, 2)); C_widget *cvadj = _fetch_cwidget(cm, _clip_spar(cm, 3)); GtkAdjustment *hadj, *vadj; CHECKCWID(extext, GTK_IS_EXTEXT); CHECKOPT2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWIDOPT(chadj, GTK_IS_ADJUSTMENT); CHECKOPT2(3, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWIDOPT(cvadj, GTK_IS_ADJUSTMENT); hadj = chadj ? GTK_ADJUSTMENT(chadj->widget) : NULL; vadj = cvadj ? GTK_ADJUSTMENT(cvadj->widget) : NULL; gtk_extext_set_adjustments(GTK_EXTEXT(extext->widget), hadj, vadj); return 0; err: return 1; }
/* Inserts in notebook a new page whose content is child, whose bookmark is * tab_label, and whose menu label is menu_label. The page is inserted just * before the page number position, starting with 0. If position is out of * bounds, it is assumed to be the current number of pages. */ int clip_GTK_NOTEBOOKINSERTPAGEMENU(ClipMachine * ClipMachineMemory) { C_widget *cntb = _fetch_cw_arg(ClipMachineMemory); C_widget *cchild = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); C_widget *ctab_label; GtkWidget *tab_label; C_widget *cmenu_label; GtkWidget *menu_label; gint position = _clip_parni(ClipMachineMemory, 5); CHECKCWID(cntb, GTK_IS_NOTEBOOK); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cchild, GTK_IS_WIDGET); CHECKARG3(3, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType, CHARACTER_type_of_ClipVarType); CHECKARG3(4, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType, CHARACTER_type_of_ClipVarType); CHECKOPT(5, NUMERIC_type_of_ClipVarType); if (_clip_parinfo(ClipMachineMemory, 3) == CHARACTER_type_of_ClipVarType) { char *caption = _clip_parc(ClipMachineMemory, 3); LOCALE_TO_UTF(caption); tab_label = gtk_label_new(caption); FREE_TEXT(caption); } else { ctab_label = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 3)); CHECKCWID(ctab_label, GTK_IS_WIDGET); if (ctab_label) tab_label = ctab_label->widget; } if (_clip_parinfo(ClipMachineMemory, 4) == CHARACTER_type_of_ClipVarType) { char *menu_text = _clip_parc(ClipMachineMemory, 4); LOCALE_TO_UTF(menu_text); menu_label = gtk_label_new(menu_text); FREE_TEXT(menu_text); } else { cmenu_label = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 4)); CHECKCWID(cmenu_label, GTK_IS_WIDGET); if (cmenu_label) menu_label = cmenu_label->widget; } if (_clip_parinfo(ClipMachineMemory, 5) == UNDEF_type_of_ClipVarType) position = 1; gtk_notebook_insert_page_menu(GTK_NOTEBOOK(cntb->widget), cchild->widget, tab_label, menu_label, position - 1); return 0; err: return 1; }
/* Sets vertical and horizontal adjustments */ int clip_GTK_WIDGETSETSCROLLADJUSTMENTS(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); C_widget *chadj = _fetch_cwidget(cm, _clip_spar(cm,2)); C_widget *cvadj = _fetch_cwidget(cm, _clip_spar(cm,3)); CHECKCWID(cwid,GTK_IS_WIDGET); CHECKOPT2(2,NUMERIC_t,MAP_t); CHECKCWIDOPT(chadj,GTK_IS_ADJUSTMENT); CHECKOPT2(3,NUMERIC_t,MAP_t); CHECKCWIDOPT(cvadj,GTK_IS_ADJUSTMENT); _clip_retl(cm, gtk_widget_set_scroll_adjustments(cwid->widget, GTK_ADJUSTMENT(chadj->widget),GTK_ADJUSTMENT(cvadj->widget))); return 0; err: return 1; }
/* Removes a list of items from the GtkTree in tree. * If only one item is to be removed from the GtkTree, * gtk_container_remove() can be used instead. * Removing an item from a GtkTree dereferences the item, and thus * usually destroys the item and any subtrees it may contain. If the * item is not to be destroyed, use gtk_object_ref() before removing it. */ int clip_GTK_TREEREMOVEITEMS(ClipMachine * ClipMachineMemory) { C_widget *ctree = _fetch_cw_arg(ClipMachineMemory); ClipVar *items = _clip_spar(ClipMachineMemory, 2); CHECKCWID(ctree, GTK_IS_TREE); CHECKOPT3(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType, ARRAY_type_of_ClipVarType); if (items->t.ClipVartype_type_of_ClipType == MAP_type_of_ClipVarType || items->t.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType) { C_widget *citem = _fetch_cwidget(ClipMachineMemory, items); gtk_tree_remove_item(GTK_TREE(ctree->widget), citem->widget); } if (items->t.ClipVartype_type_of_ClipType == ARRAY_type_of_ClipVarType) { GList *list = NULL; unsigned short i; ClipVar *item; C_widget *citem; for (i = 0; i < items->a.count; i++) { item = &items->a.items[i]; if (item->t.ClipVartype_type_of_ClipType == NUMERIC_type_of_ClipVarType || item->t.ClipVartype_type_of_ClipType == MAP_type_of_ClipVarType) { citem = _fetch_cwidget(ClipMachineMemory, item); CHECKCWID(citem, GTK_IS_TREE_ITEM); list = g_list_append(list, citem->widget); } } if (list) { gtk_tree_remove_items(GTK_TREE(ctree->widget), list); g_list_free(list); } } return 0; err: return 1; }
/* Moves a child of a GtkFixed container to the given position. */ int clip_GTK_FIXEDMOVE(ClipMachine * ClipMachineMemory) { C_widget *cfix = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); gint x = _clip_parni(ClipMachineMemory, 3); gint y = _clip_parni(ClipMachineMemory, 4); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKOPT(3, NUMERIC_type_of_ClipVarType); CHECKOPT(4, NUMERIC_type_of_ClipVarType); CHECKCWID(cfix, GTK_IS_FIXED); CHECKCWID(cwid, GTK_IS_WIDGET); if (_clip_parinfo(ClipMachineMemory, 3) == UNDEF_type_of_ClipVarType) x = cwid->widget->allocation.x; if (_clip_parinfo(ClipMachineMemory, 4) == UNDEF_type_of_ClipVarType) y = cwid->widget->allocation.y; gtk_fixed_move(GTK_FIXED(cfix->widget), cwid->widget, x, y); return 0; err: return 1; }
int clip_GTK_SPINBUTTONCONFIGURE(ClipMachine * ClipMachineMemory) { C_widget *cspb = _fetch_cw_arg(ClipMachineMemory); C_widget *cadj = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); gfloat climb_rate = DBL_OPTION(ClipMachineMemory, 3, 1); guint digits = INT_OPTION(ClipMachineMemory, 4, 1); GtkAdjustment *adj; CHECKARG2(1, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cspb, GTK_IS_SPIN_BUTTON); CHECKOPT2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWIDOPT(cadj, GTK_IS_ADJUSTMENT); CHECKOPT(3, NUMERIC_type_of_ClipVarType); CHECKOPT(4, NUMERIC_type_of_ClipVarType); adj = cadj ? GTK_ADJUSTMENT(cadj->widget) : NULL; gtk_spin_button_configure(GTK_SPIN_BUTTON(cspb->widget), adj, climb_rate, digits); return 0; err: return 1; }
/* Set the pixmap in a node. */ int clip_GTK_CTREENODESETPIXTEXT(ClipMachine * cm) { C_widget *cctree = _fetch_cw_arg(cm); C_object *cnode = _fetch_cobject(cm,_clip_spar(cm,2)); gint column = _clip_parni(cm,3); gchar *text = _clip_parc(cm,4); gint spacing = _clip_parni(cm,5); C_widget *cpixmap = _fetch_cwidget(cm,_clip_spar(cm,6)); GdkPixmap *pixmap=NULL; GdkBitmap *mask=NULL; CHECKCWID(cctree,GTK_IS_CTREE); CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE); CHECKOPT(3,NUMERIC_t); CHECKOPT(4,CHARACTER_t); CHECKOPT(5,NUMERIC_t); CHECKOPT2(6,MAP_t,NUMERIC_t); CHECKCWIDOPT(cpixmap,GTK_IS_PIXMAP); if (_clip_parinfo(cm,3)==UNDEF_t) column = 1; if (_clip_parinfo(cm,4)==UNDEF_t) text = ""; if (cpixmap) { pixmap = GTK_PIXMAP(cpixmap->widget)->pixmap; mask = GTK_PIXMAP(cpixmap->widget)->mask; } LOCALE_TO_UTF(text); gtk_ctree_node_set_pixtext(GTK_CTREE(cctree->widget), GTK_CTREE_NODE(cnode->object), column-1, text,spacing,pixmap,mask); FREE_TEXT(text); return 0; err: return 1; }
int clip_GTK_EXTEXTSETPOPUPMENU(ClipMachine * cm) { C_widget *extext = _fetch_cw_arg(cm); C_widget *widget = _fetch_cwidget(cm, _clip_spar(cm, 2)); C_widget *marginmenu = _fetch_cwidget(cm, _clip_spar(cm, 3)); CHECKCWID(extext, GTK_IS_EXTEXT); CHECKOPT2(2, MAP_t, NUMERIC_t); CHECKCWID(widget, GTK_IS_WIDGET); CHECKOPT2(3, MAP_t, NUMERIC_t); CHECKCWID(marginmenu, GTK_IS_WIDGET); gtk_extext_set_popup_menu(GTK_EXTEXT(extext->widget), GTK_WIDGET(widget->widget), GTK_WIDGET(marginmenu->widget)); return 0; err: return 1; }
int clip_GTK_IMAGEMENUITEMNEWFROMSTOCK(ClipMachine * cm) { ClipVar *cv = _clip_spar(cm, 1); gchar *stock_id = _clip_parc(cm, 2); C_widget *accelgr = _fetch_cwidget(cm, _clip_spar(cm, 3)); C_widget *cimage ; GtkWidget *image ; CHECKOPT(1,MAP_t); CHECKARG(2, CHARACTER_t); CHECKOPT2(3, MAP_t, NUMERIC_t); CHECKCWIDOPT(accelgr, GTK_IS_ACCEL_GROUP); image = gtk_image_menu_item_new_from_stock(stock_id, (accelgr != NULL)?GTK_ACCEL_GROUP(accelgr->widget):NULL); if (image) { cimage = _list_get_cwidget(cm, image); if (!cimage) cimage = _register_widget(cm, image, cv); if (cimage) _clip_mclone(cm, RETPTR(cm), &cimage->obj); } return 0; err: return 1; }
/* Adds a tooltip containing the message tip_text to the specified GtkWidget. */ int clip_GTK_TOOLTIPSSETTIP(ClipMachine * ClipMachineMemory) { C_widget *ctt = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); gchar *tip_text = _clip_parc(ClipMachineMemory, 3); gchar *tip_private = _clip_parc(ClipMachineMemory, 4); CHECKCWID(ctt, GTK_IS_TOOLTIPS); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cwid, GTK_IS_WIDGET); CHECKOPT(3, CHARACTER_type_of_ClipVarType); CHECKOPT(4, CHARACTER_type_of_ClipVarType); LOCALE_TO_UTF(tip_text); LOCALE_TO_UTF(tip_private); gtk_tooltips_set_tip(GTK_TOOLTIPS(ctt->widget), cwid->widget, tip_text, tip_private); FREE_TEXT(tip_text); FREE_TEXT(tip_private); return 0; err: return 1; }
int clip_GTK_MENUATTACH(ClipMachine * ClipMachineMemory) { C_widget *cmnu = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); guint left_attach = _clip_parni(ClipMachineMemory, 3); guint right_attach = _clip_parni(ClipMachineMemory, 4); guint top_attach = _clip_parni(ClipMachineMemory, 5); guint bottom_attach = _clip_parni(ClipMachineMemory, 6); CHECKCWID(cmnu, GTK_IS_MENU); CHECKCWID(cwid, GTK_IS_WIDGET); CHECKARG(3, NUMERIC_type_of_ClipVarType); CHECKARG(4, NUMERIC_type_of_ClipVarType); CHECKARG(5, NUMERIC_type_of_ClipVarType); CHECKARG(6, NUMERIC_type_of_ClipVarType); gtk_menu_attach(GTK_MENU(cmnu->widget), GTK_WIDGET(cwid->widget), left_attach, right_attach, top_attach, bottom_attach); return 0; err: return 1; }
/* Add accelerator to a widget */ int clip_GTK_WIDGETADDACCELERATOR(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); int sigid = _clip_parni(cm, 2); char * signame = _clip_parc(cm,2); C_widget *cwin = _fetch_cwidget(cm,_clip_spar(cm,3)); guint accel_key = _clip_parni(cm,4); guint accel_mods = _clip_parni(cm,5); GtkAccelFlags accel_flags = _clip_parni(cm,6); int ret = FALSE; CHECKCWID(cwid,GTK_IS_WIDGET); CHECKARG2(2, NUMERIC_t, CHARACTER_t); CHECKARG2(3, MAP_t, NUMERIC_t); CHECKARG(4, NUMERIC_t); CHECKOPT(5, NUMERIC_t); CHECKOPT(6, NUMERIC_t); if (cwin && cwin->accel_group) { if (_clip_parinfo(cm,2) == NUMERIC_t) signame = _sig_name_by_id(sigid); if (signame != NULL) { gtk_widget_add_accelerator(cwid->widget, signame, cwin->accel_group, accel_key, accel_mods, accel_flags); ret = TRUE; } } _clip_retl(cm, ret); return 0; err: _clip_retl(cm, ret); return 1; }
/* Remove accelerator by shortcut */ int clip_GTK_WIDGETREMOVEACCELERATOR(ClipMachine * cm) { C_widget *cwid = _fetch_cw_arg(cm); C_widget *cwin = _fetch_cwidget(cm,_clip_spar(cm,2)); guint accel_key = _clip_parni(cm,3); guint accel_mods = _clip_parni(cm,4); int ret = FALSE; CHECKCWID(cwid,GTK_IS_WIDGET); CHECKARG2(2, MAP_t, NUMERIC_t); CHECKARG(3, NUMERIC_t); CHECKOPT(4, NUMERIC_t); if (cwin && cwin->accel_group) { gtk_widget_remove_accelerator(cwid->widget, cwin->accel_group, accel_key, accel_mods); ret = TRUE; } _clip_retl(cm, ret); return 0; err: _clip_retl(cm, ret); return 1; }
/* Sets the packing parameters for the bookmark of child. * See GtkBoxPackStart for the exact meanings. */ int clip_GTK_NOTEBOOKSETTABLABELPACKING(ClipMachine * ClipMachineMemory) { C_widget *cntb = _fetch_cw_arg(ClipMachineMemory); C_widget *cchild = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); gboolean expand = _clip_parl(ClipMachineMemory, 3); gboolean fill = _clip_parl(ClipMachineMemory, 4); guint packing_type = _clip_parni(ClipMachineMemory, 5); CHECKCWID(cntb, GTK_IS_NOTEBOOK); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWID(cchild, GTK_IS_WIDGET); CHECKOPT(3, LOGICAL_type_of_ClipVarType); CHECKOPT(4, LOGICAL_type_of_ClipVarType); CHECKOPT(5, NUMERIC_type_of_ClipVarType); if (_clip_parinfo(ClipMachineMemory, 3) == UNDEF_type_of_ClipVarType) expand = TRUE; if (_clip_parinfo(ClipMachineMemory, 4) == UNDEF_type_of_ClipVarType) fill = TRUE; gtk_notebook_set_tab_label_packing(GTK_NOTEBOOK(cntb->widget), cchild->widget, expand, fill, packing_type); return 0; err: return 1; }
/* Create a new graphics context with default values. */ int clip_GDK_GCNEW(ClipMachine * cm) { ClipVar *cv = _clip_spar(cm,1); C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2)); GdkGC *gc; C_object *cgc; CHECKOPT(1,MAP_t); CHECKARG2(2,NUMERIC_t,MAP_t); gc = gdk_gc_new(cwid->widget->window); if (gc) { // gdk_gc_ref(gc); cgc = _register_object(cm,gc,GDK_OBJECT_GC,cv, (coDestructor)gdk_object_gc_destructor); if (cgc) { // cgc->ref_count=1; _clip_mclone(cm,RETPTR(cm),&cgc->obj); } // else // gdk_gc_unref(gc); } return 0; err: return 1; }
/**** SPIN BUTTON constructor ****/ int clip_GTK_SPINBUTTONNEW(ClipMachine * ClipMachineMemory) { ClipVar *cv = _clip_spar(ClipMachineMemory, 1); C_widget *cadj = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); gfloat climb_rate = DBL_OPTION(ClipMachineMemory, 3, 1); guint digits = INT_OPTION(ClipMachineMemory, 4, 1); GtkWidget *wid = NULL; GtkAdjustment *adj; C_widget *cwid; CHECKOPT(1, MAP_type_of_ClipVarType); CHECKOPT2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWIDOPT(cadj, GTK_IS_ADJUSTMENT); CHECKOPT(3, NUMERIC_type_of_ClipVarType); CHECKOPT(4, NUMERIC_type_of_ClipVarType); adj = cadj ? GTK_ADJUSTMENT(cadj->widget) : NULL; wid = gtk_spin_button_new(adj, climb_rate, digits); if (!wid) goto err; cwid = _register_widget(ClipMachineMemory, wid, cv); _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &cwid->obj); return 0; err: return 1; }
/**** LIST ITEM constructor ****/ int clip_GTK_LISTITEMNEW(ClipMachine * cm) { ClipVar * cv = _clip_spar(cm, 1); C_widget *cchild; GtkWidget *wid = NULL; C_widget *cwid; CHECKOPT(1,MAP_t); CHECKOPT3(2,CHARACTER_t,MAP_t,NUMERIC_t); switch (_clip_parinfo(cm,2)) { case CHARACTER_t: wid = gtk_list_item_new_with_label(_clip_parc(cm,2)); break; case MAP_t: case NUMERIC_t: wid = gtk_list_item_new(); cchild = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKCWID(cchild,GTK_IS_WIDGET); gtk_container_add(GTK_CONTAINER(wid), cchild->widget); break; } if (!wid) goto err; cwid = _register_widget(cm, wid, cv); _clip_mclone(cm,RETPTR(cm),&cwid->obj); return 0; err: return 1; }
/**** Horizontal scrollbar constructor ****/ int clip_GTK_HSCROLLBARNEW(ClipMachine * ClipMachineMemory) { ClipVar *cv = _clip_spar(ClipMachineMemory, 1); C_widget *cadj = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); GtkAdjustment *adj; GtkWidget *wid = NULL; C_widget *cwid; CHECKOPT(1, MAP_type_of_ClipVarType); CHECKOPT2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); CHECKCWIDOPT(cadj, GTK_IS_ADJUSTMENT); adj = cadj ? GTK_ADJUSTMENT(cadj->widget) : NULL; wid = gtk_hscrollbar_new(adj); if (!wid) goto err; cwid = _register_widget(ClipMachineMemory, wid, cv); _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &cwid->obj); return 0; err: return 1; }
/* Removes the items from the list, without unreferencing them. * It may be useful if you want to move the items from one list to another. */ int clip_GTK_LISTREMOVEITEMSNOUNREF(ClipMachine * ClipMachineMemory) { C_widget *clst = _fetch_cw_arg(ClipMachineMemory); ClipVar *cv = _clip_spar(ClipMachineMemory, 2); GList *items = NULL; C_widget *citem; int i; CHECKCWID(clst, GTK_IS_LIST); CHECKARG(2, ARRAY_type_of_ClipVarType); for (i = 0; i < cv->ClipArrVar_a_of_ClipVar.count_of_ClipArrVar; i++) { switch (cv->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar[i].ClipType_t_of_ClipVar.ClipVartype_type_of_ClipType) { case MAP_type_of_ClipVarType: case NUMERIC_type_of_ClipVarType: citem = _fetch_cwidget(ClipMachineMemory, &cv->ClipArrVar_a_of_ClipVar.ClipVar_items_of_ClipArrVar[i]); CHECKCWID(citem, GTK_IS_LIST_ITEM); items = g_list_append(items, citem->widget); break; default: break; } } gtk_list_remove_items_no_unref(GTK_LIST(clst->widget), items); return 0; err: return 1; }
/* Returns the page number of child in notebook. */ int clip_GTK_NOTEBOOKPAGENUM(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); C_widget *cchild = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKCWID(cntb,GTK_IS_NOTEBOOK); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cchild,GTK_IS_WIDGET); _clip_retni(cm,gtk_notebook_page_num(GTK_NOTEBOOK(cntb->widget), cchild->widget)+1); return 0; err: return 1; }
/* Sets default widget in window */ int clip_GTK_WINDOWSETDEFAULT(ClipMachine * cm) { C_widget *cwin = _fetch_cw_arg(cm); C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cwin,GTK_IS_WINDOW); CHECKCWID(cwid,GTK_IS_WIDGET); GTK_WINDOW(cwin->widget)->default_widget = cwid->widget; return 0; err: return 1; }
int clip_GTK_WINDOWSETTRANSIENTFOR(ClipMachine * cm) { C_widget *cwin = _fetch_cw_arg(cm); C_widget *cwin2 = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cwin,GTK_IS_WINDOW); CHECKCWID(cwin2,GTK_IS_WINDOW); gtk_window_set_transient_for(GTK_WINDOW(cwin->widget),GTK_WINDOW(cwin2->widget)); return 0; err: return 1; }
int clip_GTK_MENUSHELLPREPEND(ClipMachine * cm) { C_widget *cmns = _fetch_cw_arg(cm); C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKCWID(cmns,GTK_IS_MENU_SHELL); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cwid,GTK_IS_WIDGET); gtk_menu_shell_prepend(GTK_MENU_SHELL(cmns->widget), cwid->widget); return 0; err: return 1; }
/* Sets focus to widget */ int clip_GTK_WINDOWSETFOCUS(ClipMachine * cm) { C_widget *cwin = _fetch_cw_arg(cm); C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cwin,GTK_IS_WINDOW); CHECKCWID(cwid,GTK_IS_WIDGET); gtk_window_set_focus(GTK_WINDOW(cwin->widget),cwid->widget); return 0; err: return 1; }