⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptk-utils.h

📁 台湾人开发的Linux下的文件管理器
💻 H
字号:
/**  C Interface: ptkutils** Description: Some GUI utilities*** Author: Hong Jen Yee (PCMan) <pcman.tw (AT) gmail.com>, (C) 2006** Copyright: See COPYING file that comes with this distribution**//*  I don't like GtkUIManager provided by gtk+, so I implement my own. ;-)*/#ifndef _PTK_UTILS_H_#define _PTK_UTILS_H_#include <gtk/gtk.h>#include <gdk/gdk.h>G_BEGIN_DECLS#define PTK_STOCK_MENU_ITEM( id, cb ) { id, NULL, G_CALLBACK(cb), 0, 0, NULL, NULL }#define PTK_MENU_ITEM( label, cb, key, mod ) { label, NULL, G_CALLBACK(cb), key, mod, NULL, NULL }#define PTK_CHECK_MENU_ITEM( label, cb, key, mod ) { label, (char*)1, G_CALLBACK(cb), key, mod, NULL, NULL }#define PTK_RADIO_MENU_ITEM( label, cb, key, mod ) { label, (char*)2, G_CALLBACK(cb), key, mod, NULL, NULL }#define PTK_IMG_MENU_ITEM( label, icon, cb, key, mod ) { label, icon, G_CALLBACK(cb), key, mod, NULL, NULL }#define PTK_POPUP_MENU( label, sub ) { label, NULL, NULL, 0, 0, sub, NULL }#define PTK_POPUP_IMG_MENU( label, icon, sub ) { label, icon, NULL, 0, 0, sub, NULL }#define PTK_SEPARATOR_MENU_ITEM { NULL, (char *)(-1), NULL, 0, 0, NULL, 0}#define PTK_MENU_END  {0}#define PTK_IS_STOCK_ITEM( ent )  ( ent->label && (*(guint32*)ent->label) == *(guint32*)"gtk-" )#define PTK_IS_CHECK_MENU_ITEM( ent )  ( ent->stock_icon == (char*)1 )#define PTK_IS_RADIO_MENU_ITEM( ent )  ( ent->stock_icon == (char*)2 )struct _PtkMenuItemEntry{  const char* label; /* or stock id */  const char* stock_icon; /* or menu type  1: check, 2: radio */  GCallback callback;  guint key;  GdkModifierType mod;  struct _PtkMenuItemEntry* sub_menu;  GtkWidget** ret;};typedef struct _PtkMenuItemEntry PtkMenuItemEntry;#define PTK_STOCK_TOOL_ITEM( id, cb ) { id, NULL, NULL, G_CALLBACK(cb), NULL, NULL }#define PTK_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), NULL, NULL }#define PTK_CHECK_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), (PtkMenuItemEntry*)1, NULL }#define PTK_RADIO_TOOL_ITEM( label, icon, tooltip, cb ) { label, icon, tooltip, G_CALLBACK(cb), (PtkMenuItemEntry*)2, NULL }#define PTK_MENU_TOOL_ITEM( label, icon, tooltip, menu ) { label, icon, tooltip, NULL, menu, NULL }#define PTK_SEPARATOR_TOOL_ITEM { NULL, NULL, NULL, -1, NULL, NULL}#define PTK_TOOL_END  {0}#define PTK_IS_CHECK_TOOL_ITEM( ent )  ( ent->menu == (PtkMenuItemEntry*)1 )#define PTK_IS_RADIO_TOOL_ITEM( ent )  ( ent->menu == (PtkMenuItemEntry*)2 )#define PTK_IS_SEPARATOR_TOOL_ITEM( ent )  ( ent->callback == G_CALLBACK(-1) )struct _PtkToolItemEntry{  const char* label; /* or stock id */  const char* stock_icon; /* or menu type  1: check, 2: radio */  const char* tooltip;  GCallback callback;  struct _PtkMenuItemEntry* menu; /* NULL: normal, 1: check, 2: radio, > 2: menu */  GtkWidget** ret;};typedef struct _PtkToolItemEntry PtkToolItemEntry;GtkWidget* ptk_menu_new_from_data( PtkMenuItemEntry* entries,                                   gpointer cb_data,                                   GtkAccelGroup* accel_group );void ptk_menu_add_items_from_data( GtkWidget* menu,                                   PtkMenuItemEntry* entries,                                   gpointer cb_data,                                   GtkAccelGroup* accel_group );GtkWidget* ptk_toolbar_add_items_from_data( GtkWidget* toolbar,                                            PtkToolItemEntry* entries,                                            gpointer cb_data,                                            GtkTooltips* tooltips );void ptk_show_error(GtkWindow* parent, const char* message );G_END_DECLS#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -