summaryrefslogtreecommitdiff
path: root/fluid/Fl_Menu_Type.cxx
diff options
context:
space:
mode:
authorCarl E. Thompson <devel-fltk@carlthompson.net>1999-03-29 17:39:46 +0000
committerCarl E. Thompson <devel-fltk@carlthompson.net>1999-03-29 17:39:46 +0000
commit81c7d9b2156da7495668132a96e63e994be0d19d (patch)
tree7e1c3dc9dbc0fd7cde40759301bb7bf99483a10c /fluid/Fl_Menu_Type.cxx
parent617a7ee619493a1b07df49058509922bae48f559 (diff)
Changes needed to get FLTK to compile on Borland C++ 5 under Windows. I
compiled this on BC++ 5.0 upgraded to 5.0B via the two monster patches. I didn't turn on optimization because my version of BC++ doesn't seem to do much in the way of optimization (FLUID was only 1k smaller when optimized for size). VC++ generates smaller code. The examples that use OpenGL don't work because Borland's linker can't find "wglShareLists". I'm sure this is a simple problem, but I don't know how to fix it. Borland's C++ compiler won't allow you to call main() from C++, so I had to add a c function in "fl_call_main.c" to call it so that you don't have to do that WinMain crap. However, when I added this file to the Visual C++ project it converted the whole thing from 5.0 format to 6.0 format. The files look the nearly identical so I don't think this should be a problem for 5.0 users, but if it is then you can revert them back to the previous version and just add this one source file. Borland really doesn't suck that bad. It doesn't look as polished as VC++ and it refused to supress some warnings for no reason, but I forgot how much I liked the feel of Borlands compilers... Much more intuitive then MS VC++. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@475 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid/Fl_Menu_Type.cxx')
-rw-r--r--fluid/Fl_Menu_Type.cxx99
1 files changed, 6 insertions, 93 deletions
diff --git a/fluid/Fl_Menu_Type.cxx b/fluid/Fl_Menu_Type.cxx
index be5363e47..a7b5c6960 100644
--- a/fluid/Fl_Menu_Type.cxx
+++ b/fluid/Fl_Menu_Type.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: Fl_Menu_Type.cxx,v 1.16 1999/03/10 08:00:45 bill Exp $"
+// "$Id: Fl_Menu_Type.cxx,v 1.16.2.1 1999/03/29 17:39:25 carl Exp $"
//
// Menu item code for the Fast Light Tool Kit (FLTK).
//
@@ -38,44 +38,12 @@
#include <stdio.h>
#include <stdlib.h>
-static Fl_Menu_Item menu_item_type_menu[] = {
+Fl_Menu_Item menu_item_type_menu[] = {
{"Normal",0,0,(void*)0},
{"Toggle",0,0,(void*)FL_MENU_BOX},
{"Radio",0,0,(void*)FL_MENU_RADIO},
{0}};
-class Fl_Menu_Item_Type : public Fl_Widget_Type {
-public:
- Fl_Menu_Item* subtypes() {return menu_item_type_menu;}
- const char* type_name() {return "menuitem";}
- Fl_Type* make();
- int is_menu_item() const {return 1;}
- int is_button() const {return 1;} // this gets shortcut to work
- Fl_Widget* widget(int,int,int,int) {return 0;}
- Fl_Widget_Type* _make() {return 0;}
- void write_declare();
- const char* menu_name(int& i);
- int flags();
- void write_static();
- void write_item();
- void write_code1();
- void write_code2();
-};
-
-class Fl_Submenu_Type : public Fl_Menu_Item_Type {
-public:
- Fl_Menu_Item* subtypes() {return 0;}
- const char* type_name() {return "submenu";}
- int is_parent() const {return 1;}
- int is_button() const {return 0;} // disable shortcut
- Fl_Type* make();
- // changes to submenu must propagate up so build_menu is called
- // on the parent Fl_Menu_Type:
- void add_child(Fl_Type*a, Fl_Type*b) {parent->add_child(a,b);}
- void move_child(Fl_Type*a, Fl_Type*b) {parent->move_child(a,b);}
- void remove_child(Fl_Type*a) {parent->remove_child(a);}
-};
-
extern int reading_file;
extern int force_parent;
@@ -323,34 +291,6 @@ void Fl_Menu_Item_Type::write_code2() {}
// children. An actual array of Fl_Menu_Items is kept parallel
// with the child objects and updated as they change.
-class Fl_Menu_Type : public Fl_Widget_Type {
- int textstuff(int w, Fl_Font& f, int& s, Fl_Color& c) {
- Fl_Menu_ *o = (Fl_Menu_*)(w==4 ? ((Fl_Widget_Type*)this->factory)->o : this->o);
- switch (w) {
- case 4:
- case 0: f = o->textfont(); s = o->textsize(); c = o->textcolor(); break;
- case 1: o->textfont(f); break;
- case 2: o->textsize(s); break;
- case 3: o->textcolor(c); break;
- }
- return 1;
- }
-public:
- int is_menu_button() const {return 1;}
- int is_parent() const {return 1;}
- int menusize;
- void build_menu();
- Fl_Menu_Type() : Fl_Widget_Type() {menusize = 0;}
- ~Fl_Menu_Type() {
- if (menusize) delete[] (Fl_Menu_Item*)(((Fl_Menu_*)o)->menu());
- }
- void add_child(Fl_Type*, Fl_Type*) {build_menu();}
- void move_child(Fl_Type*, Fl_Type*) {build_menu();}
- void remove_child(Fl_Type*) {build_menu();}
- Fl_Type* click_test(int x, int y);
- void write_code2();
-};
-
void Fl_Menu_Type::build_menu() {
Fl_Menu_* w = (Fl_Menu_*)o;
// count how many Fl_Menu_Item structures needed:
@@ -423,7 +363,7 @@ void Fl_Menu_Type::write_code2() {
////////////////////////////////////////////////////////////////
#include <FL/Fl_Menu_Button.H>
-static Fl_Menu_Item button_type_menu[] = {
+Fl_Menu_Item button_type_menu[] = {
{"normal",0,0,(void*)0},
{"popup1",0,0,(void*)Fl_Menu_Button::POPUP1},
{"popup2",0,0,(void*)Fl_Menu_Button::POPUP2},
@@ -433,44 +373,17 @@ static Fl_Menu_Item button_type_menu[] = {
{"popup13",0,0,(void*)Fl_Menu_Button::POPUP13},
{"popup123",0,0,(void*)Fl_Menu_Button::POPUP123},
{0}};
-class Fl_Menu_Button_Type : public Fl_Menu_Type {
- Fl_Menu_Item *subtypes() {return button_type_menu;}
-public:
- virtual const char *type_name() {return "Fl_Menu_Button";}
- Fl_Widget *widget(int x,int y,int w,int h) {
- return new Fl_Menu_Button(x,y,w,h,"menu");}
- Fl_Widget_Type *_make() {return new Fl_Menu_Button_Type();}
-};
+
Fl_Menu_Button_Type Fl_Menu_Button_type;
////////////////////////////////////////////////////////////////
-#include <FL/Fl_Choice.H>
+Fl_Menu_Item dummymenu[] = {{"CHOICE"},{0}};
-static Fl_Menu_Item dummymenu[] = {{"CHOICE"},{0}};
-
-class Fl_Choice_Type : public Fl_Menu_Type {
-public:
- virtual const char *type_name() {return "Fl_Choice";}
- Fl_Widget *widget(int x,int y,int w,int h) {
- Fl_Choice *o = new Fl_Choice(x,y,w,h,"choice:");
- o->menu(dummymenu);
- return o;
- }
- Fl_Widget_Type *_make() {return new Fl_Choice_Type();}
-};
Fl_Choice_Type Fl_Choice_type;
////////////////////////////////////////////////////////////////
-#include <FL/Fl_Menu_Bar.H>
-class Fl_Menu_Bar_Type : public Fl_Menu_Type {
-public:
- virtual const char *type_name() {return "Fl_Menu_Bar";}
- Fl_Widget *widget(int x,int y,int w,int h) {
- return new Fl_Menu_Bar(x,y,w,h);}
- Fl_Widget_Type *_make() {return new Fl_Menu_Bar_Type();}
-};
Fl_Menu_Bar_Type Fl_Menu_Bar_type;
////////////////////////////////////////////////////////////////
@@ -529,5 +442,5 @@ void shortcut_in_cb(Shortcut_Button* i, void* v) {
}
//
-// End of "$Id: Fl_Menu_Type.cxx,v 1.16 1999/03/10 08:00:45 bill Exp $".
+// End of "$Id: Fl_Menu_Type.cxx,v 1.16.2.1 1999/03/29 17:39:25 carl Exp $".
//