~ubuntu-branches/ubuntu/utopic/pcmanfm/utopic

« back to all changes in this revision

Viewing changes to src/ptk/ptk-utils.h

  • Committer: Bazaar Package Importer
  • Author(s): Andrew Lee
  • Date: 2006-10-16 16:47:04 UTC
  • Revision ID: james.westby@ubuntu.com-20061016164704-w8zobnrvdxc7rvm5
Tags: upstream-0.3.2.1
ImportĀ upstreamĀ versionĀ 0.3.2.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
*  C Interface: ptkutils
 
3
*
 
4
* Description: Some GUI utilities
 
5
*
 
6
*
 
7
* Author: Hong Jen Yee (PCMan) <pcman.tw (AT) gmail.com>, (C) 2006
 
8
*
 
9
* Copyright: See COPYING file that comes with this distribution
 
10
*
 
11
*/
 
12
 
 
13
/*
 
14
  I don't like GtkUIManager provided by gtk+, so I implement my own. ;-)
 
15
*/
 
16
 
 
17
#ifndef _PTK_UTILS_H_
 
18
#define _PTK_UTILS_H_
 
19
 
 
20
#include <gtk/gtk.h>
 
21
#include <gdk/gdk.h>
 
22
 
 
23
G_BEGIN_DECLS
 
24
 
 
25
#define PTK_STOCK_MENU_ITEM( id, cb ) { id, NULL, G_CALLBACK(cb), 0, 0, NULL, NULL }
 
26
#define PTK_MENU_ITEM( label, cb, key, mod ) { label, NULL, G_CALLBACK(cb), key, mod, NULL, NULL }
 
27
#define PTK_CHECK_MENU_ITEM( label, cb, key, mod ) { label, (char*)1, G_CALLBACK(cb), key, mod, NULL, NULL }
 
28
#define PTK_RADIO_MENU_ITEM( label, cb, key, mod ) { label, (char*)2, G_CALLBACK(cb), key, mod, NULL, NULL }
 
29
#define PTK_IMG_MENU_ITEM( label, icon, cb, key, mod ) { label, icon, G_CALLBACK(cb), key, mod, NULL, NULL }
 
30
#define PTK_POPUP_MENU( label, sub ) { label, NULL, NULL, 0, 0, sub, NULL }
 
31
#define PTK_POPUP_IMG_MENU( label, icon, sub ) { label, icon, NULL, 0, 0, sub, NULL }
 
32
#define PTK_SEPARATOR_MENU_ITEM { NULL, (char *)(-1), NULL, 0, 0, NULL, 0}
 
33
#define PTK_MENU_END  {0}
 
34
#define PTK_IS_STOCK_ITEM( ent )  ( ent->label && (*(guint32*)ent->label) == *(guint32*)"gtk-" )
 
35
#define PTK_IS_CHECK_MENU_ITEM( ent )  ( ent->stock_icon == (char*)1 )
 
36
#define PTK_IS_RADIO_MENU_ITEM( ent )  ( ent->stock_icon == (char*)2 )
 
37
 
 
38
struct _PtkMenuItemEntry
 
39
{
 
40
  const char* label; /* or stock id */
 
41
  const char* stock_icon; /* or menu type  1: check, 2: radio */
 
42
  GCallback callback;
 
43
  guint key;
 
44
  GdkModifierType mod;
 
45
  struct _PtkMenuItemEntry* sub_menu;
 
46
  GtkWidget** ret;
 
47
};
 
48
typedef struct _PtkMenuItemEntry PtkMenuItemEntry;
 
49
 
 
50
#define PTK_STOCK_TOOL_ITEM( id, cb ) { id, NULL, NULL, G_CALLBACK(cb), NULL, NULL }
 
51
#define PTK_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), NULL, NULL }
 
52
#define PTK_CHECK_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), (PtkMenuItemEntry*)1, NULL }
 
53
#define PTK_RADIO_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), (PtkMenuItemEntry*)2, NULL }
 
54
#define PTK_MENU_TOOL_ITEM( label, icon, tooltip, menu ) { label, icon, tooltip, NULL, menu, NULL }
 
55
#define PTK_SEPARATOR_TOOL_ITEM { NULL, NULL, NULL, -1, NULL, NULL}
 
56
#define PTK_TOOL_END  {0}
 
57
#define PTK_IS_CHECK_TOOL_ITEM( ent )  ( ent->menu == (PtkMenuItemEntry*)1 )
 
58
#define PTK_IS_RADIO_TOOL_ITEM( ent )  ( ent->menu == (PtkMenuItemEntry*)2 )
 
59
#define PTK_IS_SEPARATOR_TOOL_ITEM( ent )  ( ent->callback == G_CALLBACK(-1) )
 
60
 
 
61
struct _PtkToolItemEntry
 
62
{
 
63
  const char* label; /* or stock id */
 
64
  const char* stock_icon; /* or menu type  1: check, 2: radio */
 
65
  const char* tooltip;
 
66
  GCallback callback;
 
67
  struct _PtkMenuItemEntry* menu; /* NULL: normal, 1: check, 2: radio, > 2: menu */
 
68
  GtkWidget** ret;
 
69
};
 
70
typedef struct _PtkToolItemEntry PtkToolItemEntry;
 
71
 
 
72
GtkWidget* ptk_menu_new_from_data( PtkMenuItemEntry* entries,
 
73
                                   gpointer cb_data,
 
74
                                   GtkAccelGroup* accel_group );
 
75
 
 
76
void ptk_menu_add_items_from_data( GtkWidget* menu,
 
77
                                   PtkMenuItemEntry* entries,
 
78
                                   gpointer cb_data,
 
79
                                   GtkAccelGroup* accel_group );
 
80
 
 
81
GtkWidget* ptk_toolbar_add_items_from_data( GtkWidget* toolbar,
 
82
                                            PtkToolItemEntry* entries,
 
83
                                            gpointer cb_data,
 
84
                                            GtkTooltips* tooltips );
 
85
 
 
86
void ptk_show_error(GtkWindow* parent, const char* message );
 
87
 
 
88
G_END_DECLS
 
89
 
 
90
#endif
 
91