~mdoyen/homebank/5.0.x

« back to all changes in this revision

Viewing changes to src/ui-widgets.c

  • Committer: Maxime Doyen
  • Date: 2016-05-08 16:12:56 UTC
  • Revision ID: homebank@free.fr-20160508161256-kibyki8ja9ke68bx
5.0.7 release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*  HomeBank -- Free, easy, personal accounting for everyone.
2
 
 *  Copyright (C) 1995-2015 Maxime DOYEN
 
2
 *  Copyright (C) 1995-2016 Maxime DOYEN
3
3
 *
4
4
 *  This file is part of HomeBank.
5
5
 *
200
200
                gtk_entry_set_text(GTK_ENTRY(widget), "");
201
201
}
202
202
 
 
203
void ui_gtk_entry_replace_text(GtkWidget *widget, gchar **storage)
 
204
{
 
205
const gchar *text;
 
206
 
 
207
        DB( g_print(" storage is '%p' at '%p'\n", *storage, storage) );
 
208
 
 
209
        /* free any previous string */
 
210
        if( *storage != NULL )
 
211
        {
 
212
                g_free(*storage);
 
213
        }
 
214
 
 
215
        *storage = NULL;
 
216
        text = gtk_entry_get_text(GTK_ENTRY(widget));
 
217
        *storage = g_strdup(text);
 
218
}
 
219
 
203
220
 
204
221
GtkWidget *make_label_group(gchar *str)
205
222
{
212
229
}
213
230
 
214
231
 
215
 
 
216
 
 
217
 
/*
218
 
**
219
 
*/
 
232
GtkWidget *make_label_widget(char *str)
 
233
{
 
234
GtkWidget *label = gtk_label_new_with_mnemonic (str);
 
235
 
 
236
        gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
 
237
        gtk_widget_set_halign (label, GTK_ALIGN_END);
 
238
        return label;
 
239
}
 
240
 
 
241
 
220
242
GtkWidget *make_label(char *str, gfloat xalign, gfloat yalign)
221
243
{
222
 
GtkWidget *label;
 
244
GtkWidget *label = gtk_label_new_with_mnemonic (str);
223
245
 
224
 
        label = gtk_label_new_with_mnemonic (str);
 
246
        //todo: deprecated in 3.14
225
247
        gtk_misc_set_alignment (GTK_MISC (label), xalign, yalign);
226
 
 
 
248
        //gtk_label_set_xalign(GTK_LABEL(label), xalign);
 
249
        //gtk_label_set_yalign(GTK_LABEL(label), yalign);
227
250
        return label;
228
251
}
229
252
 
238
261
        entry = gtk_entry_new ();
239
262
        gtk_editable_set_editable (GTK_EDITABLE(entry), FALSE);
240
263
        g_object_set(entry, "xalign", xalign, NULL);
241
 
 
242
 
        //entry = gtk_label_new(NULL);
243
 
        //gtk_misc_set_padding (entry, 4, 2);
244
 
        //gtk_misc_set_alignment(entry, xalign, 0.5);
245
264
        return entry;
246
265
}
247
266
 
406
425
}
407
426
 
408
427
 
409
 
GtkWidget *make_euro(GtkWidget *label)
 
428
GtkWidget *make_exchange_rate(GtkWidget *label)
410
429
{
411
430
GtkWidget *spinner;
412
431
GtkAdjustment *adj;
413
432
 
414
 
        adj = (GtkAdjustment *) gtk_adjustment_new (0.0, -G_MAXINT32, G_MAXINT32, 0.01, 1.0, 0.0);
 
433
        adj = (GtkAdjustment *) gtk_adjustment_new (0.0, 0.0, 99999, 0.01, 1.0, 0.0);
415
434
        spinner = gtk_spin_button_new (adj, 1.0, 6);
416
435
        //gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
417
436
        gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinner), TRUE);
842
861
/*
843
862
** Make a paymode combobox widget
844
863
*/
845
 
GtkWidget *make_paymode(GtkWidget *label)
846
 
{
847
 
GtkListStore  *store;
848
 
GtkTreeIter    iter;
 
864
 
 
865
static void
 
866
paymode_set_sensitive (GtkCellLayout   *cell_layout,
 
867
               GtkCellRenderer *cell,
 
868
               GtkTreeModel    *tree_model,
 
869
               GtkTreeIter     *iter,
 
870
               gpointer         data)
 
871
{
 
872
  GtkTreePath *path;
 
873
  gint *indices;
 
874
  gboolean sensitive;
 
875
 
 
876
  path = gtk_tree_model_get_path (tree_model, iter);
 
877
  indices = gtk_tree_path_get_indices (path);
 
878
  sensitive = (indices[0] == PAYMODE_INTXFER) ? FALSE : TRUE;  
 
879
  gtk_tree_path_free (path);
 
880
  
 
881
 
 
882
  g_object_set (cell, "sensitive", sensitive, NULL);
 
883
}
 
884
 
 
885
 
 
886
 
 
887
static GtkWidget *make_paymode_internal(GtkWidget *label, gboolean intxfer)
 
888
{
 
889
GtkListStore *store;
 
890
GtkTreeIter iter;
849
891
GtkWidget *combobox;
850
 
GtkCellRenderer    *renderer;
 
892
GtkCellRenderer *renderer, *r1, *r2;
851
893
guint i;
852
894
 
853
 
        //store
854
895
        store = gtk_list_store_new (
855
896
                NUM_LST_PAYMODE,
856
897
                G_TYPE_STRING,
857
898
                G_TYPE_STRING
858
899
                );
859
900
 
860
 
        //combobox
861
901
        combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
862
902
 
863
 
        //column 1
864
 
        renderer = gtk_cell_renderer_pixbuf_new();
 
903
        renderer = r1 = gtk_cell_renderer_pixbuf_new();
865
904
        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), renderer, FALSE);
866
905
        gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(combobox), renderer, "icon-name", LST_PAYMODE_ICONNAME);
867
906
 
868
 
        renderer = gtk_cell_renderer_text_new();
 
907
        renderer = r2 = gtk_cell_renderer_text_new();
869
908
        gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), renderer, FALSE);
870
909
        gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT(combobox), renderer, "text", LST_PAYMODE_LABEL);
871
910
 
872
 
        gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), 0);
 
911
 
 
912
        if( intxfer == FALSE )
 
913
        {
 
914
                gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
 
915
                                                r1,
 
916
                                                paymode_set_sensitive,
 
917
                                                NULL, NULL);
 
918
                gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combobox),
 
919
                                                r2,
 
920
                                                paymode_set_sensitive,
 
921
                                                NULL, NULL);
 
922
        }
873
923
 
874
924
        //populate our combobox model
875
925
        for(i=0;i<NUM_PAYMODE_MAX;i++)
889
939
        return combobox;
890
940
}
891
941
 
 
942
 
 
943
 
 
944
 
 
945
GtkWidget *make_paymode(GtkWidget *label)
 
946
{
 
947
        return make_paymode_internal(label, TRUE);
 
948
}
 
949
 
 
950
GtkWidget *make_paymode_nointxfer(GtkWidget *label)
 
951
{
 
952
        return make_paymode_internal(label, FALSE);
 
953
}
 
954
 
 
955
 
892
956
/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */
893
957
 
894
958
#define NUM_NAINEX_MAX 3