Remove quick-menu stuff (used only in old jinete examples):

This commit is contained in:
David Capello 2011-02-19 23:11:40 -03:00
parent d1baef1555
commit b2ff34909f
5 changed files with 0 additions and 158 deletions

View File

@ -34,7 +34,6 @@ add_library(gui-lib
popup_frame.cpp
preferred_size_event.cpp
property.cpp
quickmenu.cpp
rect.cpp
region.cpp
separator.cpp

View File

@ -41,7 +41,6 @@
struct jaccel;
struct jhook;
struct jquickmenu;
struct jlink;
struct jlist;
union jmessage;
@ -196,7 +195,6 @@ typedef void* JThread;
typedef struct jaccel* JAccel;
typedef struct jhook* JHook;
typedef struct jquickmenu* JQuickMenu;
typedef struct jlink* JLink;
typedef struct jlist* JList;
typedef union jmessage* JMessage;

View File

@ -37,7 +37,6 @@
#include "gui/popup_frame.h"
#include "gui/preferred_size_event.h"
#include "gui/property.h"
#include "gui/quickmenu.h"
#include "gui/rect.h"
#include "gui/region.h"
#include "gui/separator.h"

View File

@ -1,130 +0,0 @@
// ASE gui library
// Copyright (C) 2001-2011 David Capello
//
// This source file is ditributed under a BSD-like license, please
// read LICENSE.txt for more information.
#include "config.h"
#include "gui/accel.h"
#include "gui/list.h"
#include "gui/menu.h"
#include "gui/message.h"
#include "gui/quickmenu.h"
#include "gui/separator.h"
#include "gui/widget.h"
struct QuickData
{
void (*quick_handler)(JWidget widget, int user_data);
int user_data;
};
static void process_quickmenu(JWidget menu, JQuickMenu quick_menu);
static bool quickmenu_msg_proc(JWidget widget, JMessage msg);
static int quickmenu_type()
{
static int type = 0;
if (!type)
type = ji_register_widget_type();
return type;
}
JWidget jmenubar_new_quickmenu(JQuickMenu quick_menu)
{
JWidget menubar = jmenubar_new();
JWidget menu = jmenu_new();
jmenubar_set_menu(menubar, menu);
process_quickmenu(menu, quick_menu);
return menubar;
}
JWidget jmenubox_new_quickmenu(JQuickMenu quick_menu)
{
JWidget menubox = jmenubox_new();
JWidget menu = jmenu_new();
jmenubox_set_menu(menubox, menu);
process_quickmenu(menu, quick_menu);
return menubox;
}
static void process_quickmenu(JWidget menu, JQuickMenu quick_menu)
{
JWidget menuitem = NULL;
JList parent = jlist_new();
int c, old_level = 0;
jlist_append(parent, menu);
for (c=0; quick_menu[c].level >= 0; c++) {
if (old_level < quick_menu[c].level) {
if (menuitem) {
menu = jmenu_new();
jmenuitem_set_submenu(menuitem, menu);
jlist_append(parent, menu);
}
}
else {
while (old_level > quick_menu[c].level) {
old_level--;
jlist_remove(parent, jlist_last(parent)->data);
}
}
/* normal menu item */
if (quick_menu[c].text) {
menuitem = jmenuitem_new(quick_menu[c].text);
if (quick_menu[c].accel) {
JAccel accel = jaccel_new();
jaccel_add_keys_from_string(accel, quick_menu[c].accel);
jmenuitem_set_accel(menuitem, accel);
}
if (quick_menu[c].quick_handler) {
QuickData *quick_data = new QuickData;
quick_data->quick_handler = quick_menu[c].quick_handler;
quick_data->user_data = quick_menu[c].user_data;
jwidget_add_hook(menuitem, quickmenu_type(),
quickmenu_msg_proc, quick_data);
}
}
/* separator */
else {
menuitem = ji_separator_new(NULL, JI_HORIZONTAL);
}
jwidget_add_child((JWidget)jlist_last(parent)->data, menuitem);
old_level = quick_menu[c].level;
}
jlist_free(parent);
}
static bool quickmenu_msg_proc(JWidget widget, JMessage msg)
{
switch (msg->type) {
case JM_DESTROY:
delete (QuickData*)(jwidget_get_data(widget, quickmenu_type()));
break;
case JM_SIGNAL:
if (msg->signal.num == JI_SIGNAL_MENUITEM_SELECT) {
QuickData* quick_data = reinterpret_cast<QuickData*>(jwidget_get_data(widget, quickmenu_type()));
(*quick_data->quick_handler)(widget, quick_data->user_data);
return true;
}
break;
}
return false;
}

View File

@ -1,24 +0,0 @@
// ASE gui library
// Copyright (C) 2001-2011 David Capello
//
// This source file is ditributed under a BSD-like license, please
// read LICENSE.txt for more information.
#ifndef GUI_QUICKMENU_H_INCLUDED
#define GUI_QUICKMENU_H_INCLUDED
#include "gui/base.h"
struct jquickmenu
{
int level;
const char *text;
const char *accel;
void (*quick_handler)(JWidget widget, int user_data);
int user_data;
};
JWidget jmenubar_new_quickmenu(JQuickMenu quick_menu);
JWidget jmenubox_new_quickmenu(JQuickMenu quick_menu);
#endif