예제 #1
0
/**** 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;
}
예제 #2
0
파일: extext.c 프로젝트: amery/clip-angelo
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;
}
예제 #3
0
파일: ctree.c 프로젝트: amery/clip-itk
/* 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;
}
예제 #4
0
/**** 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;
}
예제 #5
0
파일: widget.c 프로젝트: amery/clip-itk
/* 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;
}
예제 #6
0
int
clip_GTK_TREESELECTIONGETSELECTED(ClipMachine * cm)
{
	C_object *ctreesel = _fetch_co_arg(cm);
        C_object *cmodel   = _fetch_cobject(cm, _clip_par(cm, 2));
        ClipVar *cviter    = _clip_par(cm, 3);
        C_object *citer;
        GtkTreeModel *model;
        gboolean ret;

	CHECKOPT2(1, MAP_t, NUMERIC_t); CHECKCOBJ(ctreesel,GTK_IS_TREE_SELECTION(ctreesel->object));

	memset(Iter, 0, sizeof(Iter));
	if (cmodel)
        {
		model = GTK_TREE_MODEL(cmodel->object);
		ret = gtk_tree_selection_get_selected(GTK_TREE_SELECTION(ctreesel->object),
			&model, Iter);
	}
	else
		ret = gtk_tree_selection_get_selected(GTK_TREE_SELECTION(ctreesel->object),
			NULL, Iter);

	if (ret && Iter)
        {
		citer = _list_get_cobject(cm,Iter);
		if (!citer) citer = _register_object(cm,Iter,GTK_TYPE_TREE_ITER, cviter, NULL);
		if (citer) _clip_mclone(cm, cviter,&citer->obj);
        }

        _clip_retl(cm, ret);
	return 0;
err:
	return 1;
}
예제 #7
0
파일: extext.c 프로젝트: amery/clip-itk
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;
}
예제 #8
0
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;
}
예제 #9
0
파일: gdkdraw.c 프로젝트: amery/clip-angelo
/* Draws a line, using the foreground color and other attributes of the GdkGC. */
int
clip_GDK_DRAWLINE(ClipMachine * ClipMachineMemory)
{
   C_widget *cwid = _fetch_cw_arg(ClipMachineMemory);

   C_object *cgc = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2));

   gint      x1 = _clip_parni(ClipMachineMemory, 3);

   gint      y1 = _clip_parni(ClipMachineMemory, 4);

   gint      x2 = _clip_parni(ClipMachineMemory, 5);

   gint      y2 = _clip_parni(ClipMachineMemory, 6);

   GdkDrawable *drw = NULL;

   CHECKCWID(cwid, GTK_IS_WIDGET);
   CHECKOPT2(2, NUMERIC_type_of_ClipVarType, MAP_type_of_ClipVarType);
   CHECKCOBJ(cgc, GDK_IS_GC(cgc));
   CHECKOPT(3, NUMERIC_type_of_ClipVarType);
   CHECKOPT(4, NUMERIC_type_of_ClipVarType);
   CHECKOPT(5, NUMERIC_type_of_ClipVarType);
   CHECKOPT(6, NUMERIC_type_of_ClipVarType);

   drw = cwid->widget->window;
   if (GTK_IS_PIXMAP(cwid->widget))
      drw = GTK_PIXMAP(cwid->widget)->pixmap;
   gdk_draw_line(drw, GDK_GC(cgc->object), x1, y1, x2, y2);
   return 0;
 err:
   return 1;
}
예제 #10
0
파일: gdkdraw.c 프로젝트: amery/clip-angelo
/* Note: A rectangle drawn filled is 1 pixel smaller in both dimensions
 * than a rectangle outlined. Calling gdk_draw_rectangle (window, gc, TRUE, 0, 0, 20, 20)
 * results in a filled rectangle 20 pixels wide and 20 pixels high. Calling
 * gdk_draw_rectangle (window, gc, FALSE, 0, 0, 20, 20) results in an outlined
 * rectangle with corners at (0, 0), (0, 20), (20, 20), and (20, 0), which makes
 * it 21 pixels wide and 21 pixels high. */
int
clip_GDK_DRAWRECTANGLE(ClipMachine * ClipMachineMemory)
{
   C_widget *cwid = _fetch_cw_arg(ClipMachineMemory);

   C_object *cgc = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2));

   gint      filled = BOOL_OPTION(ClipMachineMemory, 3, TRUE);

   gint      x = _clip_parni(ClipMachineMemory, 4);

   gint      y = _clip_parni(ClipMachineMemory, 5);

   gint      width = _clip_parni(ClipMachineMemory, 6);

   gint      height = _clip_parni(ClipMachineMemory, 7);

   GdkDrawable *drw = NULL;

   CHECKCWID(cwid, GTK_IS_WIDGET);
   CHECKOPT2(2, NUMERIC_type_of_ClipVarType, MAP_type_of_ClipVarType);
   CHECKCOBJ(cgc, GDK_IS_GC(cgc));
   CHECKOPT(3, LOGICAL_type_of_ClipVarType);
   CHECKOPT(4, NUMERIC_type_of_ClipVarType);
   CHECKOPT(5, NUMERIC_type_of_ClipVarType);
   CHECKOPT(6, NUMERIC_type_of_ClipVarType);
   CHECKOPT(7, NUMERIC_type_of_ClipVarType);
   drw = cwid->widget->window;
   if (GTK_IS_PIXMAP(cwid->widget))
      drw = GTK_PIXMAP(cwid->widget)->pixmap;
   gdk_draw_rectangle(drw, GDK_GC(cgc->object), filled, x, y, width, height);
   return 0;
 err:
   return 1;
}
예제 #11
0
int
clip_GTK_ACCELGROUPCONNECT(ClipMachine * ClipMachineMemory)
{
   C_widget *caccelg = _fetch_cw_arg(ClipMachineMemory);

   guint     accel_key = _clip_parni(ClipMachineMemory, 2);

   GdkModifierType accel_mods = _clip_parni(ClipMachineMemory, 3);

   GtkAccelFlags accel_flags = _clip_parni(ClipMachineMemory, 4);

   C_object *cclosure = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 5));

   GClosure *closure;

   CHECKCWID(caccelg, GTK_IS_ACCEL_GROUP);
   CHECKOPT2(1, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKOPT(2, NUMERIC_type_of_ClipVarType);
   CHECKOPT(3, NUMERIC_type_of_ClipVarType);
   CHECKOPT(4, NUMERIC_type_of_ClipVarType);

   closure = (GClosure *) (cclosure->object);
   gtk_accel_group_connect(GTK_ACCEL_GROUP(caccelg->widget), accel_key, accel_mods, accel_flags, closure);
   return 0;
 err:
   return 1;
}
예제 #12
0
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;
}
예제 #13
0
파일: ctree.c 프로젝트: amery/clip-itk
int
clip_GTK_CTREENODEGETPIXMAP(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);
	GdkPixmap *pixmap;
	GdkBitmap *mask;
	C_widget *cpixmap;
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT(3,NUMERIC_t);
	if (_clip_parinfo(cm,3)==UNDEF_t) column = 1;
	if (gtk_ctree_node_get_pixmap(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object),column-1,&pixmap,&mask))
	{
		if (pixmap)
		{
			cpixmap = _list_get_cwidget_by_data(cm,pixmap);
			if (!cpixmap) cpixmap = _register_widget(cm,gtk_pixmap_new(pixmap,mask),NULL);
			if (cpixmap) _clip_mclone(cm,RETPTR(cm),&cpixmap->obj);
		}
	}
	return 0;
err:
	return 1;
}
예제 #14
0
int
clip_SX_CHILL(ClipMachine * ClipMachineMemory)
{
   const char *__PROC__ = "SX_CHILL";

   ClipVar *order = _clip_par(ClipMachineMemory, 1);

   ClipVar *index = _clip_par(ClipMachineMemory, 2);

   DBWorkArea *wa = cur_area(ClipMachineMemory);

   int ord, er;

   ClipMachineMemory->m6_error = 0;
   CHECKWA(wa);
   CHECKOPT2(1, CHARACTER_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKOPT1(2, CHARACTER_type_of_ClipVarType);

   _clip_retl(ClipMachineMemory, 0);
   ord = get_orderno(wa, order, index);
   if (ord == -1)
      ord = wa->rd->curord;
   if (ord == -1)
      return 0;

   wa->rd->orders[ord]->custom = 0;
   wa->rd->orders[ord]->canadd = 0;

   _clip_retl(ClipMachineMemory, 1);
   return 0;
 err:
   return er;
}
예제 #15
0
/****  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;
}
예제 #16
0
int
clip_GTK_FILECHOOSERWIDGETNEWWITHBACKEND(ClipMachine * ClipMachineMemory)
{
   ClipVar  *cv = _clip_spar(ClipMachineMemory, 1);

   GtkFileChooserAction action = _clip_parni(ClipMachineMemory, 2);

   gchar    *backend = _clip_parc(ClipMachineMemory, 2);

   GtkWidget *wid;

   C_widget *cwid;

   CHECKOPT2(1, NUMERIC_type_of_ClipVarType, MAP_type_of_ClipVarType);
   CHECKARG(2, NUMERIC_type_of_ClipVarType);
   CHECKARG(3, CHARACTER_type_of_ClipVarType);

   wid = gtk_file_chooser_widget_new_with_backend(action, backend);
   if (wid)
    {
       cwid = _list_get_cwidget(ClipMachineMemory, wid);
       if (!cwid)
	  cwid = _register_widget(ClipMachineMemory, wid, cv);
       if (cwid)
	  _clip_mclone(ClipMachineMemory, RETPTR(ClipMachineMemory), &cwid->obj);
    }
   return 0;
 err:
   return 1;
}
예제 #17
0
/**** 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;
}
예제 #18
0
int
clip_SX_INDEXNAME(ClipMachine * ClipMachineMemory)
{
   const char *__PROC__ = "SX_INDEXNAME";

   DBWorkArea *wa = cur_area(ClipMachineMemory);

   ClipVar *order = _clip_par(ClipMachineMemory, 1);

   int ord, er;

   ClipMachineMemory->m6_error = 0;
   CHECKWA(wa);
   CHECKOPT2(1, CHARACTER_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);

   _clip_retc(ClipMachineMemory, "");
   ord = get_orderno(wa, order, NULL);
   if (ord == -1)
      ord = wa->rd->curord;
   if (ord == -1)
      return 0;
   _clip_retc(ClipMachineMemory, wa->rd->orders[ord]->index->name);
   return 0;
 err:
   return er;
}
예제 #19
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Returns True is node is an ancestor of child.  */
int
clip_GTK_CTREEISANCESTOR(ClipMachine * cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	C_object   *cchild = _fetch_cobject(cm,_clip_spar(cm,3));
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT2(3,MAP_t,NUMERIC_t); CHECKCOBJOPT(cchild,cchild->type==GTK_TYPE_CTREE_NODE);
	_clip_retl(cm,gtk_ctree_is_ancestor(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object),
			GTK_CTREE_NODE(cchild->object)));
	return 0;
err:
	return 1;
}
예제 #20
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Move a node in the tree to another location. */
int
clip_GTK_CTREEMOVE(ClipMachine * cm)
{
	C_widget       *cctree = _fetch_cw_arg(cm);
	C_object        *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	C_object  *cnew_parent = _fetch_cobject(cm,_clip_spar(cm,3));
	C_object *cnew_sibling = _fetch_cobject(cm,_clip_spar(cm,4));
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT2(3,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnew_parent,cnew_parent->type==GTK_TYPE_CTREE_NODE);
	CHECKOPT2(4,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnew_sibling,cnew_sibling->type==GTK_TYPE_CTREE_NODE);
	gtk_ctree_move(GTK_CTREE(cctree->widget),GTK_CTREE_NODE(cnode->object),
			GTK_CTREE_NODE(cnew_parent->object),
			GTK_CTREE_NODE(cnew_sibling->object));
	return 0;
err:
	return 1;
}
예제 #21
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Remove the node and all nodes underneath it from the tree. */
int
clip_GTK_CTREEREMOVENODE(ClipMachine * cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	gtk_ctree_remove_node(GTK_CTREE(cctree->widget),GTK_CTREE_NODE(cnode->object));
	return 0;
err:
	return 1;
}
예제 #22
0
파일: progress.c 프로젝트: amery/clip-itk
/* Associates a GtkAdjustment with the GtkProgress. A GtkAdjustment is used
 * to represent the upper and lower bounds and the step interval of the
 * underlying value for which progress is shown. */
int
clip_GTK_PROGRESSSETADJUSTMENT(ClipMachine * cm)
{
	C_widget *cprg = _fetch_cw_arg(cm);
	C_widget *cadj = _fetch_cwidget(cm,_clip_spar(cm,2));
        CHECKCWID(cprg,GTK_IS_PROGRESS);
        CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCWID(cadj,GTK_IS_ADJUSTMENT);
        gtk_progress_set_adjustment(GTK_PROGRESS(cprg->widget),GTK_ADJUSTMENT(cadj->widget));
	return 0;
err:
	return 1;
}
예제 #23
0
파일: gdk.c 프로젝트: amery/clip-angelo
/* Grabs the pointer (usually a mouse) so that all events are passed to this
 * application until the pointer is ungrabbed with gdk_pointer_ungrab(), or
 * the grab window becomes unviewable. This overrides any previous pointer
 * grab by this client.

 * Pointer grabs are used for operations which need complete control over mouse
 * events, even if the mouse leaves the application. For example in GTK+ it is
 * used for Drag and Drop, for dragging the handle in the GtkHPaned and GtkVPaned
 * widgets, and for resizing columns in GtkCList widgets.

 * Note that if the event mask of an X window has selected both button press and
 * button release events, then a button press event will cause an automatic pointer
 * grab until the button is released. X does this automatically since most
 * applications expect to receive button press and release events in pairs.
 * It is equivalent to a pointer grab on the window with owner_events set to TRUE. */
int
clip_GDK_POINTERGRAB(ClipMachine * ClipMachineMemory)
{
   C_widget *cwin = _fetch_cw_arg(ClipMachineMemory);

   GdkWindow *win = NULL;

   gboolean  owner_events = _clip_parl(ClipMachineMemory, 2);

   GdkEventMask event_mask = _clip_parnl(ClipMachineMemory, 3);

   C_widget *cconfine_to = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 4));

   GdkWindow *confine_to = NULL;

   C_object *ccursor = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 5));

   GdkCursor *cursor = NULL;

   CHECKCWID(cwin, GTK_IS_WIDGET);
   CHECKOPT(2, LOGICAL_type_of_ClipVarType);
   CHECKOPT(3, NUMERIC_type_of_ClipVarType);
   CHECKOPT2(4, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCWIDOPT(cwin, GTK_IS_WIDGET);
   CHECKOPT2(5, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCOBJOPT(ccursor, GDK_IS_CURSOR(ccursor));

   if (cwin && cwin->widget)
      win = cwin->widget->window;
   if (cconfine_to && cconfine_to->widget)
      confine_to = cconfine_to->widget->window;
   if (ccursor)
      cursor = GDK_CURSOR(ccursor->object);

   _clip_retni(ClipMachineMemory, gdk_pointer_grab(win, owner_events, event_mask, confine_to, cursor, GDK_CURRENT_TIME));

   return 0;
 err:
   return 1;
}
예제 #24
0
int
clip_GTK_TREESELECTIONGETSELECTEDROWS(ClipMachine * ClipMachineMemory)
{
   C_object *ctreesel = _fetch_co_arg(ClipMachineMemory);

   ClipVar  *mod = ARGPTR(ClipMachineMemory, 2);

   GtkTreeModel *model;

   C_object *cmodel;

   GList    *list;

   long      l;

   ClipVar  *ret = RETPTR(ClipMachineMemory);

   CHECKOPT2(1, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType);
   CHECKCOBJ(ctreesel, GTK_IS_TREE_SELECTION(ctreesel->object));

   list = gtk_tree_selection_get_selected_rows(GTK_TREE_SELECTION(ctreesel->object), &model);

   l = g_list_length(list);
   _clip_array(ClipMachineMemory, ret, 1, &l);
   for (l = 0; list; list = g_list_next(list), l++)
    {
       C_object *cpath;

       GtkTreePath *path;

       path = GTK_TREE_PATH(list->data);
       cpath = _list_get_cobject(ClipMachineMemory, path);
       if (!cpath)
	  cpath = _register_object(ClipMachineMemory, path, GTK_TYPE_TREE_PATH, NULL, NULL);
       if (cpath)
	  _clip_aset(ClipMachineMemory, ret, &cpath->obj, 1, &l);
    }

   if (model)
    {
       cmodel = _list_get_cobject(ClipMachineMemory, model);
       if (!cmodel)
	  cmodel = _register_object(ClipMachineMemory, model, GTK_TYPE_TREE_MODEL, NULL, NULL);
       if (cmodel)
	  _clip_mclone(ClipMachineMemory, mod, &cmodel->obj);
    }
   g_list_foreach(list, (GFunc) (gtk_tree_path_free), NULL);
   g_list_free(list);
   return 0;
 err:
   return 1;
}
예제 #25
0
파일: viewport.c 프로젝트: amery/clip-itk
/* Sets the Adjustment for the vertical scrollbar. */
int
clip_GTK_VIEWPORTSETVADJUSTMENT (ClipMachine *cm)
{
	C_widget *cvp  = _fetch_cw_arg(cm);
	C_widget *cadj = _fetch_cwidget(cm,_clip_spar(cm, 2));
        CHECKCWID(cvp,GTK_IS_VIEWPORT);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCWIDOPT(cadj,GTK_IS_ADJUSTMENT);
        gtk_viewport_set_vadjustment (GTK_VIEWPORT(cvp->widget),
        	GTK_ADJUSTMENT(cadj->widget));
	return 0;
err:
	return 1;
}
예제 #26
0
/* Used to add children without native scrolling capabilities.
 * This is simply a convenience function; it is equivalent to adding the
 * unscrollable child to a viewport, then adding the viewport to the
 * scrolled window. If a child has native scrolling, use gtk_container_add()
 * instead of this function. */
int
clip_GTK_SCROLLEDWINDOWADDWITHVIEWPORT (ClipMachine *cm)
{
    C_widget *csw  = _fetch_cw_arg(cm);
    C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm, 2));
    CHECKCWID(csw,GTK_IS_SCROLLED_WINDOW);
    CHECKOPT2(2,MAP_t,NUMERIC_t);
    CHECKCWIDOPT(cwid,GTK_IS_WIDGET);
    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW(csw->widget), cwid->widget);
    return 0;
err:
    return 1;
}
예제 #27
0
int
clip_GTK_TREESELECTIONCOUNTSELECTEDROWS(ClipMachine * cm)
{
	C_object *ctreesel = _fetch_co_arg(cm);

	CHECKOPT2(1, MAP_t, NUMERIC_t); CHECKCOBJ(ctreesel,GTK_IS_TREE_SELECTION(ctreesel->object));

	_clip_retni(cm, gtk_tree_selection_count_selected_rows(GTK_TREE_SELECTION(ctreesel->object)));

	return 0;
err:
	return 1;
}
예제 #28
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Returns : Whether this node can be selected by the user.  */
int
clip_GTK_CTREENODEGETSELECTABLE(ClipMachine * cm)
{
	C_widget    *cctree = _fetch_cw_arg(cm);
	C_object     *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	_clip_retl(cm,gtk_ctree_node_get_selectable(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object)));
	return 0;
err:
	return 1;
}
예제 #29
0
파일: ctree.c 프로젝트: amery/clip-itk
/* Toggle the expansion of a node and all its children. */
int
clip_GTK_CTREETOGGLEEXPANSIONRECURSIVE(ClipMachine * cm)
{
	C_widget   *cctree = _fetch_cw_arg(cm);
	C_object    *cnode = _fetch_cobject(cm,_clip_spar(cm,2));
	CHECKCWID(cctree,GTK_IS_CTREE);
	CHECKOPT2(2,MAP_t,NUMERIC_t); CHECKCOBJOPT(cnode,cnode->type==GTK_TYPE_CTREE_NODE);
	gtk_ctree_toggle_expansion_recursive(GTK_CTREE(cctree->widget),
			GTK_CTREE_NODE(cnode->object));
	return 0;
err:
	return 1;
}
예제 #30
0
파일: gdkdraw.c 프로젝트: amery/clip-angelo
/* Draws a number of characters in the given font or fontset. */
int
clip_GDK_DRAWTEXT(ClipMachine * ClipMachineMemory)
{
   C_widget *cwid = _fetch_cw_arg(ClipMachineMemory);

   C_object *cgc = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2));

   C_object *font = _fetch_cobject(ClipMachineMemory, _clip_spar(ClipMachineMemory, 3));

   gint      x = _clip_parni(ClipMachineMemory, 4);

   gint      y = _clip_parni(ClipMachineMemory, 5);

   gchar    *text = _clip_parc(ClipMachineMemory, 6);

   gint      length = _clip_parni(ClipMachineMemory, 7);

   GdkDrawable *drw = NULL;

   CHECKCWID(cwid, GTK_IS_WIDGET);
   CHECKOPT2(2, NUMERIC_type_of_ClipVarType, MAP_type_of_ClipVarType);
   CHECKCOBJ(cgc, GDK_IS_GC(cgc));
   CHECKOPT2(3, NUMERIC_type_of_ClipVarType, MAP_type_of_ClipVarType);
   CHECKCOBJ(cgc, GDK_IS_FONT(font));
   CHECKOPT(4, NUMERIC_type_of_ClipVarType);
   CHECKOPT(5, NUMERIC_type_of_ClipVarType);
   CHECKOPT(6, CHARACTER_type_of_ClipVarType);
   CHECKOPT(7, NUMERIC_type_of_ClipVarType);
   drw = cwid->widget->window;
   if (GTK_IS_PIXMAP(cwid->widget))
      drw = GTK_PIXMAP(cwid->widget)->pixmap;
   LOCALE_TO_UTF(text);
   gdk_draw_text(drw, GDK_FONT(font->object), GDK_GC(cgc->object), x, y, text, length);
   FREE_TEXT(text);
   return 0;
 err:
   return 1;
}