~riaguzov/xpad/add_search

« back to all changes in this revision

Viewing changes to src/xpad-toolbar.h

  • Committer: Siergiej Riaguzow
  • Date: 2019-01-28 22:37:44 UTC
  • Revision ID: siergiej.riaguzow@gmail.com-20190128223744-v5g4flcd1574vat9
Add search via toolbar/context menu/Ctrl-F shortcut

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
struct XpadToolbarClass
46
46
{
47
47
        GtkToolbarClass parent_class;
48
 
        
49
 
        void (*activate_clear) (XpadToolbar *toolbar);
50
 
        void (*activate_close) (XpadToolbar *toolbar);
51
 
        void (*activate_undo) (XpadToolbar *toolbar);
52
 
        void (*activate_redo) (XpadToolbar *toolbar);
53
 
        void (*activate_cut) (XpadToolbar *toolbar);
54
 
        void (*activate_copy) (XpadToolbar *toolbar);
55
 
        void (*activate_paste) (XpadToolbar *toolbar);
56
 
        void (*activate_delete) (XpadToolbar *toolbar);
57
 
        void (*activate_new) (XpadToolbar *toolbar);
58
 
        void (*activate_preferences) (XpadToolbar *toolbar);
59
 
        void (*activate_properties) (XpadToolbar *toolbar);
60
 
        void (*activate_quit) (XpadToolbar *toolbar);
61
 
        void (*popup) (XpadToolbar *toolbar, GtkMenu *menu);
62
 
        void (*popdown) (XpadToolbar *toolbar, GtkMenu *menu);
63
48
};
64
49
 
65
50
GType xpad_toolbar_get_type (void);
66
51
 
 
52
// TODO: Why don't return XpadToolbar? Just because in GTK API it is like so?
 
53
// (but at least in gedit e.g. fields of XXXPrivate structs are of proper child types
 
54
// and not GtkWidget* everywhere)
 
55
//
 
56
// The only citation I've found on the topic is this one:
 
57
// All of the _new() routines return a GtkWidget*, even though they allocate a subclass; this is for convenience.
 
58
// (c) https://book.huihoo.com/gtk+-gnome-application-development/cha-gtk.html
 
59
//
 
60
// Who's convinience? If you will look at source code of gedit for example
 
61
// all fields declared in a XXXPrivate has proper child type (what is
 
62
// return from GTK _new is casted). This gives much more readability - maybe
 
63
// with the drawback of having to cast things back to GTK_WIDGET to add to
 
64
// a container and such.
 
65
//
 
66
// Anyway in Xpad part of _new functions return GtkWidget* and part
 
67
// return proper pointer types. Also part of XXXPrivate has GtkWidget*
 
68
// and part do not. Since Xpad is not an API I propose to return real
 
69
// type and where is makes sense to store real types in XXXPrivate
 
70
// (if this will result in too many casts, I will instead make everything
 
71
// a GtkWidget for consistency). Currently it is a mess in Xpad (even without
 
72
// arguing with GTK API choices). It should be at least consistent
67
73
GtkWidget *xpad_toolbar_new (XpadPad *pad);
68
74
 
69
75
void xpad_toolbar_enable_undo_button (XpadToolbar *toolbar, gboolean enable);