ege-select-one-action.cpp revision b2abe73593d4797ad03ba9ada7d6a06efabed30c
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
*/
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is EGE Select One Action.
*
* The Initial Developer of the Original Code is
* Jon A. Cruz.
* Portions created by the Initial Developer are Copyright (C) 2007
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/* Note: this file should be kept compilable as both .cpp and .c */
#include <string.h>
#include <gtk/gtklabel.h>
#include <gtk/gtktoolitem.h>
#include <gtk/gtkcombobox.h>
#include <gtk/gtkcellrenderertext.h>
#include <gtk/gtkcellrendererpixbuf.h>
#include <gtk/gtkcelllayout.h>
#include <gtk/gtkradioaction.h>
#include <gtk/gtkradiomenuitem.h>
#include <gtk/gtktable.h>
#include "ege-select-one-action.h"
enum {
CHANGED = 0,
static void ege_select_one_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec );
static void ege_select_one_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec );
static void proxy_action_chagned_cb( GtkRadioAction* action, GtkRadioAction* current, gpointer user_data );
static GtkActionClass* gParentClass = 0;
enum {
APPEARANCE_UNKNOWN = -1,
APPEARANCE_NONE = 0,
APPEARANCE_FULL, // label, then all choices represented by separate buttons
APPEARANCE_COMPACT, // label, then choices in a drop-down menu
APPEARANCE_MINIMAL, // no label, just choices in a drop-down menu
};
struct _EgeSelectOneActionPrivate
{
};
#define EGE_SELECT_ONE_ACTION_GET_PRIVATE( o ) ( G_TYPE_INSTANCE_GET_PRIVATE( (o), EGE_SELECT_ONE_ACTION_TYPE, EgeSelectOneActionPrivate ) )
enum {
PROP_MODEL = 1,
};
GType ege_select_one_action_get_type( void )
{
if ( !myType ) {
sizeof( EgeSelectOneActionClass ),
NULL, /* base_init */
NULL, /* base_finalize */
NULL, /* class_finalize */
NULL, /* class_data */
sizeof( EgeSelectOneAction ),
0, /* n_preallocs */
};
}
return myType;
}
}
{
if ( klass ) {
g_param_spec_object( "model",
"Tree Model",
"Tree model of possible items",
g_param_spec_int( "active",
"Active Selection",
"The index of the selected item",
0, 20, 0,
g_param_spec_int( "label-column",
"Display Column",
"The column of the model that holds display strings",
0, 20, 0,
g_param_spec_int( "icon-column",
"Icon Column",
"The column of the model that holds display icon name",
-1, 20, -1,
g_param_spec_int( "tooltip-column",
"Tooltip Column",
"The column of the model that holds tooltip strings",
-1, 20, -1,
g_param_spec_string( "icon-property",
"Icon Property",
"Target icon property",
"",
g_param_spec_int( "icon-size",
"Icon Size",
"Target icon size",
-1, 20, -1,
g_param_spec_string( "appearance",
"Appearance hint",
"A hint for how to display",
"",
G_TYPE_NONE, 0);
}
}
{
/* g_signal_connect( action, "notify", G_CALLBACK( fixup_labels ), NULL ); */
}
{
"name", name,
"label", label,
"tooltip", tooltip,
"stock_id", stock_id,
"model", model,
"active", 0,
"icon-property", "stock-id",
NULL );
return action;
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
{
}
void ege_select_one_action_get_property( GObject* obj, guint propId, GValue* value, GParamSpec * pspec )
{
switch ( propId ) {
case PROP_MODEL:
break;
case PROP_ACTIVE:
break;
case PROP_LABEL_COLUMN:
break;
case PROP_ICON_COLUMN:
break;
case PROP_TOOLTIP_COLUMN:
break;
case PROP_ICON_PROP:
break;
case PROP_ICON_SIZE:
break;
case PROP_APPEARANCE:
break;
default:
}
}
void ege_select_one_action_set_property( GObject* obj, guint propId, const GValue *value, GParamSpec* pspec )
{
switch ( propId ) {
case PROP_MODEL:
{
}
break;
case PROP_ACTIVE:
{
}
break;
case PROP_LABEL_COLUMN:
{
}
break;
case PROP_ICON_COLUMN:
{
}
break;
case PROP_TOOLTIP_COLUMN:
{
}
break;
case PROP_ICON_PROP:
{
}
break;
case PROP_ICON_SIZE:
{
}
break;
case PROP_APPEARANCE:
{
} else {
}
}
break;
default:
}
}
{
if ( IS_EGE_SELECT_ONE_ACTION(action) ) {
while ( valid ) {
-1 );
index++;
}
} else {
}
return item;
}
void ege_select_one_action_set_radio_action_type( EgeSelectOneAction* action, GType radioActionType )
{
(void)action;
} else {
g_warning("Passed in type '%s' is not derived from '%s'", g_type_name(radioActionType), g_type_name(GTK_TYPE_RADIO_ACTION) );
}
}
{
{
GtkRadioAction* ract = 0;
if (sss) {
}
while ( valid ) {
/*
gint size = 0;
*/
-1 );
-1 );
}
-1 );
}
"name", "Name 1",
"label", str,
"tooltip", tip,
"value", index,
/*
"iconId", iconId,
"iconSize", size,
*/
NULL );
if ( iconId ) {
}
/* TODO get this string to be set instead of hardcoded */
}
} else {
}
}
index++;
}
} else {
GtkCellRenderer * renderer = 0;
// "icon-name"
gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(normal), renderer, "stock-id", act->private_data->iconColumn );
}
gtk_cell_layout_add_attribute( GTK_CELL_LAYOUT(normal), renderer, "text", act->private_data->labelColumn );
if (sss) {
}
}
}
} else {
}
return item;
}
{
}
{
}
{
while ( proxies ) {
/* Search for the things we built up in create_tool_item() */
if ( GTK_IS_COMBO_BOX(combodata) ) {
}
if ( data ) {
/*gtk_radio_action_set_current_value( oneAction, active );*/
while ( group ) {
/* Found the group member to set active */
break;
}
}
}
}
}
}
}
}
}
}
}
{
}
}
{
}
}
{
(void)current;
}
}
}