コード例 #1
0
ファイル: entry.c プロジェクト: zdia/gnocl
/**
\brief      Function associated with the widget.
\author
\date
**/
static int cget (
	Tcl_Interp *interp,
	EntryParams *para,
	GnoclOption options[], int idx )
{
#ifdef DEBUG_ENTRY
	printf ( "entry/staticFuncs/cget\n" );
#endif

	Tcl_Obj *obj = NULL;

	if ( idx == variableIdx )
	{
		obj = Tcl_NewStringObj ( para->variable, -1 );
	}

	else if ( idx == onChangedIdx )
	{
		obj = Tcl_NewStringObj ( para->onChanged ? para->onChanged : "", -1 );
	}

	else if ( idx == valueIdx )
	{
		obj = Tcl_NewStringObj ( gtk_entry_get_text ( para->entry ), -1 );
	}

	if ( obj != NULL )
	{
		Tcl_SetObjResult ( interp, obj );
		return TCL_OK;
	}

	return gnoclCgetNotImplemented ( interp, options + idx );
}
コード例 #2
0
ファイル: spinButton.c プロジェクト: combusean/cvideokiosk
static int cget( Tcl_Interp *interp, SpinButtonParams *para, 
      GnoclOption options[], int idx )
{
   GtkAdjustment *adjust = gtk_spin_button_get_adjustment( para->spinButton );

   Tcl_Obj *obj = NULL;
   if( idx == variableIdx )
      obj = Tcl_NewStringObj( para->variable, -1 );
   else if( idx == onValueChangedIdx )
   {
      obj = Tcl_NewStringObj( 
            para->onValueChanged ? para->onValueChanged : "", -1 );
   }
   else if( idx == lowerIdx )
      obj = Tcl_NewDoubleObj( adjust->lower );
   else if( idx == upperIdx )
      obj = Tcl_NewDoubleObj( adjust->upper );
   else if( idx == stepIncIdx )
      obj = Tcl_NewDoubleObj( adjust->step_increment );
   else if( idx == pageIncIdx )
      obj = Tcl_NewDoubleObj( adjust->page_increment );
   else if( idx == valueIdx )
      obj = getObjValue( para->spinButton );

   if( obj != NULL )
   {
      Tcl_SetObjResult( interp, obj );
      return TCL_OK;
   }

   return gnoclCgetNotImplemented( interp, options + idx );
}
コード例 #3
0
ファイル: canvas.c プロジェクト: combusean/cvideokiosk
static int cget( Tcl_Interp *interp, GnomeCanvas *canvas, 
      GnoclOption options[], int idx )
{
   Tcl_Obj *obj = NULL;

   if( obj != NULL )
   {
      Tcl_SetObjResult( interp, obj );
      return TCL_OK;
   }

   return gnoclCgetNotImplemented( interp, options + idx );
}
コード例 #4
0
ファイル: button.c プロジェクト: zdia/gnocl
/**
\brief  Obtain current -option values.
**/
static int cget (   Tcl_Interp *interp, GtkButton *button,  GnoclOption options[],  int idx )
{

	Tcl_Obj *obj = NULL;

	if ( idx == textIdx )
	{
		obj = gnoclCgetButtonText ( interp, button );
	}

	else if ( idx == iconIdx )
	{
		GtkWidget *image = gnoclFindChild ( GTK_WIDGET ( button ), GTK_TYPE_IMAGE );

		if ( image == NULL )
		{
			obj = Tcl_NewStringObj ( "", 0 );
		}

		else
		{
			gchar  *st;
			g_object_get ( G_OBJECT ( image ), "stock", &st, NULL );

			if ( st )
			{
				obj = Tcl_NewStringObj ( "%#", 2 );
				Tcl_AppendObjToObj ( obj, gnoclGtkToStockName ( st ) );
				g_free ( st );
			}

			else
			{
				Tcl_SetResult ( interp, "Could not determine icon type.", TCL_STATIC );
				return TCL_ERROR;
			}
		}
	}

	if ( obj != NULL )
	{
		Tcl_SetObjResult ( interp, obj );
		return TCL_OK;
	}

	return gnoclCgetNotImplemented ( interp, options + idx );
}
コード例 #5
0
ファイル: canvas.c プロジェクト: combusean/cvideokiosk
static int itemCget( Tcl_Interp *interp, int objc, 
      Tcl_Obj * const objv[], CanvasParams *param, GPtrArray *items )
{
   /* canvas itemCget tag-or-id option */
   Gnocl_CanvasItemInfo *info;
   int idx;

   if( objc != 4 )
   {
      Tcl_WrongNumArgs( interp, 2, objv, "tag-or-id option" );
      return TCL_ERROR;
   }

   if( items == NULL || items->len == 0 )
      return TCL_OK;

   if( items->len > 1 )
   {
      Tcl_SetResult( interp, "tag-or-id must specify a single item", 
            TCL_STATIC );
      return TCL_ERROR;
   }

   info = GET_INFO( items, 0 );

   switch( gnoclCgetOne( interp, objv[3], G_OBJECT( info->item ), 
         info->options, &idx ) )
   {
      case GNOCL_CGET_ERROR:  
               return TCL_ERROR;
      case GNOCL_CGET_HANDLED:
               return TCL_OK;
      case GNOCL_CGET_NOTHANDLED:
               {
                  Tcl_Obj *ret = NULL;
                  if( info->getOption )
                     ret = (*info->getOption)( interp, idx, info );
                  if( ret == NULL )
                     return gnoclCgetNotImplemented( interp, 
                           info->options + idx );
                  Tcl_SetObjResult( interp, ret );
                  return TCL_OK;
               }
   }

   return TCL_ERROR;
}
コード例 #6
0
ファイル: combo.c プロジェクト: zdia/gnocl
static int cget ( Tcl_Interp *interp, ComboParams *para,
				  GnoclOption options[], int idx )
{
	Tcl_Obj *obj = NULL;
	GtkEntry *entry = GTK_ENTRY ( para->combo->entry );

	if ( idx == variableIdx )
		obj = Tcl_NewStringObj ( para->variable, -1 );
	else if ( idx == onChangedIdx )
		obj = Tcl_NewStringObj ( para->onChanged ? para->onChanged : "", -1 );
	else if ( idx == itemsIdx )
	{
		obj = Tcl_NewListObj ( 0, NULL );
		gtk_container_foreach ( GTK_CONTAINER ( para->combo->list ),
								getAllItems, obj );
	}

	else if ( idx == valueIdx )
		obj = Tcl_NewStringObj ( gtk_entry_get_text ( entry ), -1 );
	else if ( idx == tooltipIdx )
		gnoclOptTooltip ( interp, &options[tooltipIdx], G_OBJECT ( entry ), &obj );
	else if ( idx == editableIdx )
	{
		gboolean on;
		g_object_get ( G_OBJECT ( entry ), "editable", &on, NULL );
		obj = Tcl_NewBooleanObj ( on );
	}

	if ( obj != NULL )
	{
		Tcl_SetObjResult ( interp, obj );
		return TCL_OK;
	}

	return gnoclCgetNotImplemented ( interp, options + idx );
}
コード例 #7
0
ファイル: comboBox.c プロジェクト: combusean/cvideokiosk
static int cget( Tcl_Interp *interp, ComboParams *para, 
      GnoclOption options[], int idx )
{
   Tcl_Obj *obj = NULL;
   if( idx == variableIdx )
      obj = Tcl_NewStringObj( para->variable, -1 );
   else if( idx == onChangedIdx )
      obj = Tcl_NewStringObj( para->onChanged ? para->onChanged : "", -1 );
   else if( idx == itemsIdx )
   {
      GtkTreeModel *model = gtk_combo_box_get_model( para->comboBox );
      obj = Tcl_NewListObj( 0, NULL );
      if( model )
      {
         GtkTreeIter  iter;
         gboolean valid =  gtk_tree_model_get_iter_first( model, &iter );
         while( valid )
         {
            const char *txt;
            gtk_tree_model_get( model, &iter, TEXT_COLUMN, &txt, -1 );
            Tcl_ListObjAppendElement( NULL, obj, Tcl_NewStringObj( txt, -1 ) );
            valid = gtk_tree_model_iter_next( model, &iter);
         }
      }
   }
   else if( idx == itemValueIdx )
   {
      GtkTreeModel *model = gtk_combo_box_get_model( para->comboBox );
      obj = Tcl_NewListObj( 0, NULL );
      if( model )
      {
         GtkTreeIter  iter;
         gboolean valid =  gtk_tree_model_get_iter_first( model, &iter );
         while( valid )
         {
            const char *val, *txt;
            Tcl_Obj *ll = Tcl_NewListObj( 0, NULL );
            gtk_tree_model_get( model, &iter, VALUE_COLUMN, &val, 
                  TEXT_COLUMN, &txt, -1 );
            Tcl_ListObjAppendElement( NULL, ll, Tcl_NewStringObj( txt, -1 ) );
            Tcl_ListObjAppendElement( NULL, ll, Tcl_NewStringObj( val, -1 ) );
            Tcl_ListObjAppendElement( NULL, obj, ll );

            valid = gtk_tree_model_iter_next( model, &iter);
         }
      }
   }
   else if( idx == valueIdx )
   {
      const char *val = getActiveValue( para->comboBox );
      obj = Tcl_NewStringObj( val ? val : "", -1 );
   }

   if( obj != NULL )
   {
      Tcl_SetObjResult( interp, obj );
      return TCL_OK;
   }


   return gnoclCgetNotImplemented( interp, options + idx );
}
コード例 #8
0
ファイル: recentChooser.c プロジェクト: zdia/gnocl
/**
\brief
\author     William J Giddings
**/
static int cget ( Tcl_Interp *interp, GtkWidget *widget, GnoclOption options[], int idx )
{
	printf ( "cget\n" );

	const char *dataIDa = "gnocl::data1";
	const char *dataIDb = "gnocl::data2";

	GtkWidget *arrow = gnoclFindChild ( GTK_WIDGET ( widget ), GTK_TYPE_BUTTON );
	char *str;

	/* this will enable us to obtain widget data for the arrow object */
	char *result = g_object_get_data ( G_OBJECT ( arrow ), dataIDa );
	printf ( "cget result = %s\n", result );

	result = g_object_get_data ( G_OBJECT ( arrow ), dataIDb );
	printf ( "cget result = %s\n", result );

	str = gnoclGetNameFromWidget ( arrow );
	printf ( "configure %s\n", str );


	/*-----*/
	/*
	    Tcl_Obj *obj = NULL;

	    if ( idx == textIdx )
	    {
	        obj = gnoclCgetButtonText ( interp, widget );
	    }

	    else if ( idx == iconsIdx )
	    {
	        GtkWidget *image = gnoclFindChild ( GTK_WIDGET ( widget ), GTK_TYPE_IMAGE );

	        if ( image == NULL )
	            obj = Tcl_NewStringObj ( "", 0 );
	        else
	        {
	            gchar   *st;
	            g_object_get ( G_OBJECT ( image ), "stock", &st, NULL );

	            if ( st )
	            {
	                obj = Tcl_NewStringObj ( "%#", 2 );
	                Tcl_AppendObjToObj ( obj, gnoclGtkToStockName ( st ) );
	                g_free ( st );
	            }

	            else
	            {
	                Tcl_SetResult ( interp, "Could not determine icon type.",
	                                TCL_STATIC );
	                return TCL_ERROR;
	            }
	        }
	    }

	    if ( obj != NULL )
	    {
	        Tcl_SetObjResult ( interp, obj );
	        return TCL_OK;
	    }
	*/


	return gnoclCgetNotImplemented ( interp, options + idx );
}
コード例 #9
0
ファイル: fontSelection.c プロジェクト: zdia/gnocl
/**
\brief      Obtain current -option values.
\author     Peter G Baum, William J Giddings
**/
static int cget (   Tcl_Interp *interp, GtkButton *button,  GnoclOption options[],  int idx )
{
    return gnoclCgetNotImplemented ( interp, options + idx );
}
コード例 #10
0
ファイル: fontButton.c プロジェクト: zdia/gnocl
/**
\brief      This function is only concerned with the reconfiguration of
            the button, not the dialog.
\author     William J Giddings
\date
**/
int fontButtonFunc ( ClientData data, Tcl_Interp *interp, int objc, Tcl_Obj * const objv[] )
{
	static const char *cmds[] = { "delete", "configure", "cget", "onClicked", "class", NULL };
	enum cmdIdx { DeleteIdx, ConfigureIdx, CgetIdx, OnClickedIdx, ClassIdx };
	GtkFontButton *button = GTK_FONT_BUTTON ( data );
	int idx;

	if ( objc < 2 )
	{
		Tcl_WrongNumArgs ( interp, 1, objv, "command" );
		return TCL_ERROR;
	}

	if ( Tcl_GetIndexFromObj ( interp, objv[1], cmds, "command",
							   TCL_EXACT, &idx ) != TCL_OK )
		return TCL_ERROR;

	switch ( idx )
	{
		case ClassIdx:
			Tcl_SetObjResult ( interp, Tcl_NewStringObj ( "fontButton", -1 ) );
			break;
		case DeleteIdx:
			return gnoclDelete ( interp, GTK_WIDGET ( button ), objc, objv );

		case ConfigureIdx:
			{
				int ret = TCL_ERROR;

				if ( gnoclParseAndSetOptions ( interp, objc - 1, objv + 1, fontButtonOptions, G_OBJECT ( button ) ) == TCL_OK )
				{
					ret = configure ( interp, button, fontButtonOptions );
				}

				gnoclClearOptions ( fontButtonOptions );

				return ret;
			}

			break;
		case OnClickedIdx:
			{
#ifdef DEBUG
				printf ( "fontButtonFunc - onClicked \n" );
#endif

				if ( objc != 2 )
				{
					Tcl_WrongNumArgs ( interp, 2, objv, NULL );
					return TCL_ERROR;
				}

				if ( GTK_WIDGET_IS_SENSITIVE ( GTK_WIDGET ( button ) ) )
				{
					gtk_button_clicked ( GTK_BUTTON ( button ) );
				}



			}
			break;

		case CgetIdx:
			{
				int     idx;

				switch ( gnoclCget ( interp, objc, objv, G_OBJECT ( button ),
									 fontButtonOptions, &idx ) )
				{
					case GNOCL_CGET_ERROR:
						return TCL_ERROR;
					case GNOCL_CGET_HANDLED:
						return TCL_OK;
					case GNOCL_CGET_NOTHANDLED:
						return gnoclCgetNotImplemented ( interp,
														 fontButtonOptions + idx );
				}
			}
	}

	return TCL_OK;
}