From: Robert Roebling Date: Sat, 30 May 1998 17:10:15 +0000 (+0000) Subject: GTK: X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/1c005ff76d730891c038de560b49a0c39fa6924f GTK: Added wxTabCtrl Work on wxEventhandler (delete clientdata) wxChoice (derive from wxControl) wxTextCtrl (init with text) Added sample for tabctrl (and more) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/controls/Makefile b/samples/controls/Makefile new file mode 100644 index 0000000000..027d82ae19 --- /dev/null +++ b/samples/controls/Makefile @@ -0,0 +1 @@ +include ../../src/gtk/setup/general/makeapp diff --git a/samples/controls/Makefile.in b/samples/controls/Makefile.in new file mode 100644 index 0000000000..13d042e5ef --- /dev/null +++ b/samples/controls/Makefile.in @@ -0,0 +1,26 @@ +# WXXT base directory +WXBASEDIR=@WXBASEDIR@ + +# set the OS type for compilation +OS=@OS@ +# compile a library only +RULE=bin + +# define library name +BIN_TARGET=test +# define library sources +BIN_SRC=\ +minimal.cpp + +#define library objects +BIN_OBJ=\ +minimal.o + +# additional things needed to link +BIN_LINK= + +# additional things needed to compile +ADD_COMPILE= + +# include the definitions now +include ../../../template.mak diff --git a/samples/controls/aiai.ico b/samples/controls/aiai.ico new file mode 100644 index 0000000000..a3db6563cc Binary files /dev/null and b/samples/controls/aiai.ico differ diff --git a/samples/controls/aiai.xbm b/samples/controls/aiai.xbm new file mode 100644 index 0000000000..1a6f0a31b1 --- /dev/null +++ b/samples/controls/aiai.xbm @@ -0,0 +1,38 @@ +#define aiai_width 64 +#define aiai_height 64 +static char aiai_bits[] = { + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, + 0x44,0x44,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, + 0x44,0x44,0x44,0x44,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x44,0x44,0x44,0x42,0x44,0x44,0x44,0x44,0x44,0x44, + 0x44,0x47,0x44,0x44,0x44,0x44,0x11,0x11,0x11,0x17,0x11,0x11,0x11,0x11,0x11, + 0x11,0x91,0x1f,0x11,0x11,0x11,0x11,0x44,0x44,0xc4,0x4f,0x44,0x44,0x44,0x44, + 0x44,0x44,0xc4,0x5f,0x44,0xf4,0x45,0x44,0x11,0x11,0xf1,0x1f,0x11,0xf9,0x13, + 0x11,0x11,0x11,0xf1,0x3f,0x11,0xfd,0x13,0x11,0x44,0x44,0xf4,0x7f,0x44,0xfc, + 0x47,0x44,0x44,0x44,0xf4,0x7f,0x44,0xfc,0x47,0x44,0x11,0x11,0xf9,0x7f,0x11, + 0xf9,0x13,0x11,0x11,0x11,0xfd,0xff,0x11,0xf1,0x11,0x11,0x44,0x44,0xfc,0xff, + 0x44,0x44,0x44,0x44,0x44,0x44,0xfe,0xff,0x45,0x44,0x44,0x44,0x11,0x11,0xff, + 0xff,0x11,0xfd,0x13,0x11,0x11,0x11,0xff,0xff,0x13,0xfd,0x13,0x11,0x44,0xc4, + 0xff,0xff,0x07,0xfc,0x43,0x44,0x44,0xff,0xff,0xf9,0xff,0xfd,0xfb,0xff,0x11, + 0xc0,0xff,0x00,0x00,0xfc,0x03,0x00,0x11,0xc0,0x7f,0x00,0x00,0xfc,0x03,0x00, + 0x04,0xe0,0x7f,0x00,0x00,0xfc,0x03,0x00,0xf4,0xf7,0xbf,0xff,0xff,0xfd,0xfb, + 0x7f,0x01,0xf0,0x1f,0x00,0x00,0xfc,0x03,0x00,0x01,0xf8,0x1f,0x00,0x00,0xfc, + 0x03,0x00,0x00,0xfc,0x0f,0x00,0x00,0xfc,0x03,0x40,0xfe,0xfd,0xef,0xff,0xff, + 0xfd,0xfb,0x4f,0x00,0xfe,0x07,0x00,0x00,0xfc,0x03,0x10,0x00,0xfe,0x03,0x00, + 0x00,0xfc,0x03,0x10,0x00,0xff,0x03,0x00,0x00,0xfc,0x03,0x44,0x7f,0xff,0x01, + 0x00,0x00,0xfc,0xfb,0x44,0x91,0xff,0xff,0xff,0xff,0xff,0x13,0x11,0xd1,0xff, + 0xff,0xff,0xff,0xff,0x13,0x11,0xe4,0xff,0xff,0xff,0xff,0xff,0x47,0x44,0xe4, + 0xff,0xff,0xff,0xff,0xff,0x47,0x44,0xf1,0xff,0xff,0xff,0xff,0xff,0x13,0x11, + 0xf1,0xff,0xff,0xff,0xff,0xff,0x13,0x11,0xfc,0xff,0xff,0xff,0xff,0xff,0x47, + 0x44,0xfc,0xff,0xff,0xff,0xff,0xff,0x47,0x44,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x44,0x44,0xc4,0x44,0x44, + 0xc4,0x44,0x44,0x44,0x4e,0xc4,0x44,0x4e,0xc4,0x44,0x44,0x11,0x1f,0xd1,0x11, + 0x1f,0xd1,0x11,0x11,0x91,0x31,0xd1,0x91,0x31,0xd1,0x11,0x11,0xc4,0x64,0xcc, + 0xcc,0x64,0xcc,0x44,0x44,0x64,0xc4,0xcc,0x6c,0xc4,0xcc,0x44,0x44,0xf1,0xff, + 0xd1,0xf1,0xff,0xd1,0x11,0x11,0xf9,0xff,0xd3,0xf9,0xff,0xd3,0x11,0x11,0x4c, + 0x44,0xc6,0x4c,0x44,0xc6,0x44,0x44,0x4c,0x44,0xc6,0x4c,0x44,0xc6,0x44,0x44, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, + 0x44,0x44}; diff --git a/samples/controls/makefile.b32 b/samples/controls/makefile.b32 new file mode 100644 index 0000000000..06d7deff50 --- /dev/null +++ b/samples/controls/makefile.b32 @@ -0,0 +1,64 @@ +# +# File: makefile.bcc +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds minimal example (DOS). + +# WXWIN and BCCDIR are set by parent make + +WXDIR = $(WXWIN) +!include $(WXDIR)\src\makeb32.env + +WXLIBDIR = $(WXDIR)\lib +WXINC = $(WXDIR)\include\msw +WXLIB = $(WXLIBDIR)\wx32.lib +LIBS=$(WXLIB) cw32 import32 ole2w32 + +TARGET=minimal + +!if "$(FINAL)" == "0" +LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib +OPT = -Od +DEBUG_FLAGS= -v +!else +LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib +OPT = -Od +DEBUG_FLAGS = +!endif +CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) + +OBJECTS = minimal.obj + +$(TARGET).exe: $(OBJECTS) $(TARGET).def $(TARGET).res + tlink32 $(LINKFLAGS) @&&! +c0w32.obj $(OBJECTS) +$(TARGET) +nul +$(LIBS) +$(TARGET).def +! + brc32 -K $(TARGET).res + +.$(SRCSUFF).obj: + bcc32 $(CPPFLAGS) -c {$< } + +.c.obj: + bcc32 $(CPPFLAGS) -P- -c {$< } + +minimal.obj: minimal.$(SRCSUFF) + +$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc + brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET) + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.rws + diff --git a/samples/controls/makefile.bcc b/samples/controls/makefile.bcc new file mode 100644 index 0000000000..b68a9b6d21 --- /dev/null +++ b/samples/controls/makefile.bcc @@ -0,0 +1,73 @@ +# +# File: makefile.bcc +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds minimal example (DOS). + +!if "$(BCCDIR)" == "" +!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4 +!endif + +!if "$(WXWIN)" == "" +!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx +!endif + +WXDIR = $(WXWIN) +!include $(WXDIR)\src\makebcc.env + +THISDIR = $(WXDIR)\samples\minimal +WXLIB = $(WXDIR)\lib\wx.lib +LIBS=$(WXLIB) mathwl cwl import +INC=-I$(WXDIR)\include\base -I$(WXDIR)\include\msw +CFG=$(WXDIR)\src\wxwin.cfg + +!ifndef FINAL +FINAL=0 +!endif + +!if "$(FINAL)" == "0" +LINKFLAGS=/v/Vt /Twe /L$(WXDIR)\lib;$(BCCDIR)\lib +OPT = -Od +DEBUG_FLAGS= -v +!else +LINKFLAGS=/Twe /L$(WXDIR)\lib;$(BCCDIR)\lib +OPT = -O2 +DEBUG_FLAGS= +!endif +CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) + +OBJECTS = minimal.obj + +minimal: minimal.exe + +all: minimal.exe + +minimal.exe: $(WXLIB) minimal.obj minimal.def minimal.res + tlink $(LINKFLAGS) @&&! +c0wl.obj minimal.obj +minimal +nul +$(LIBS) +minimal.def +! + rc -31 -K minimal.res + +.$(SRCSUFF).obj: + bcc $(CPPFLAGS) -c {$< } + +minimal.obj: minimal.$(SRCSUFF) + +minimal.res : minimal.rc $(WXDIR)\include\msw\wx.rc + rc -r /i$(BCCDIR)\include /i$(WXDIR)\include\msw /i$(WXDIR)\contrib\fafa minimal + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.rws diff --git a/samples/controls/makefile.dos b/samples/controls/makefile.dos new file mode 100644 index 0000000000..aa7e6ddf53 --- /dev/null +++ b/samples/controls/makefile.dos @@ -0,0 +1,65 @@ +# +# File: makefile.dos +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds minimal example (DOS). +# Use FINAL=1 argument to nmake to build final version with no debugging +# info + +WXDIR = $(WXWIN) + +!include $(WXDIR)\src\makemsc.env + +THISDIR = $(WXDIR)\samples\minimal + +!ifndef FINAL +FINAL=0 +!endif + +HEADERS = +SOURCES = minimal.$(SRCSUFF) +OBJECTS = minimal.obj + +all: minimal.exe + +wx: + cd $(WXDIR)\src\msw + nmake -f makefile.dos FINAL=$(FINAL) + cd $(THISDIR) + +wxclean: + cd $(WXDIR)\src\msw + nmake -f makefile.dos clean + cd $(THISDIR) + +minimal.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) minimal.obj minimal.def minimal.res + link $(LINKFLAGS) @<< +minimal.obj $(WXDIR)\src\msw\dummy.obj, +minimal, +NUL, +$(LIBS), +minimal.def +; +<< + rc -K minimal.res + +minimal.obj: minimal.$(SRCSUFF) + cl @<< +$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +<< + +minimal.res : minimal.rc $(WXDIR)\include\wx\msw\wx.rc + rc -r /i$(WXDIR)\include minimal + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.sbr + -erase *.pdb diff --git a/samples/controls/makefile.g95 b/samples/controls/makefile.g95 new file mode 100644 index 0000000000..6ad1b1b2ad --- /dev/null +++ b/samples/controls/makefile.g95 @@ -0,0 +1,37 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile for minimal example (UNIX). + +WXDIR = ../.. + +# All common UNIX compiler flags and options are now in +# this central makefile. +include $(WXDIR)/src/makeg95.env + +OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) $(OBJDIR)/minimal_resources.$(OBJSUFF) + +all: $(OBJDIR) minimal$(GUISUFFIX)$(EXESUFF) + +wx: + +$(OBJDIR): + mkdir $(OBJDIR) + +minimal$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) + $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) + +$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) + +$(OBJDIR)/minimal_resources.o: minimal.rc + $(RESCOMP) -i minimal.rc -o $(OBJDIR)/minimal_resources.o $(RESFLAGS) + +clean: + rm -f $(OBJECTS) minimal$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/controls/makefile.nt b/samples/controls/makefile.nt new file mode 100644 index 0000000000..276311e09c --- /dev/null +++ b/samples/controls/makefile.nt @@ -0,0 +1,64 @@ +# +# File: makefile.nt +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile : Builds minimal example (MS VC++). +# Use FINAL=1 argument to nmake to build final version with no debugging +# info + +# Set WXDIR for your system +WXDIR = $(WXWIN) + +WXUSINGDLL=0 + +!include $(WXDIR)\src\ntwxwin.mak + +THISDIR = $(WXDIR)\samples\minimal +PROGRAM=minimal + +OBJECTS = $(PROGRAM).obj + +$(PROGRAM): $(PROGRAM).exe + +all: wx $(PROGRAM).exe + +wx: + cd $(WXDIR)\src\msw + nmake -f makefile.nt FINAL=$(FINAL) + cd $(THISDIR) + +wxclean: + cd $(WXDIR)\src\msw + nmake -f makefile.nt clean + cd $(THISDIR) + +$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res + $(link) @<< +-out:$(PROGRAM).exe +$(LINKFLAGS) +$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res +$(LIBS) +<< + + +$(PROGRAM).obj: $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ) + $(cc) @<< +$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) +<< + +$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc + $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc + + +clean: + -erase *.obj + -erase *.exe + -erase *.res + -erase *.map + -erase *.sbr + -erase *.pdb diff --git a/samples/controls/makefile.sc b/samples/controls/makefile.sc new file mode 100644 index 0000000000..8709d2ca0f --- /dev/null +++ b/samples/controls/makefile.sc @@ -0,0 +1,35 @@ +# Symantec C++ makefile for minimal example +# NOTE that peripheral libraries are now dealt in main wxWindows makefile. + +WXDIR = $(WXWIN) +!include $(WXDIR)\src\makesc.env + +WXLIB = $(WXDIR)\lib\wx.lib +INCDIR = $(WXDIR)\include +MSWINC = $(INCDIR)\msw +BASEINC = $(INCDIR)\base + +CC=sc +RC=rc +CFLAGS = -o -ml -W -Dwx_msw +LDFLAGS = -ml -W + +INCLUDE=$(BASEINC);$(MSWINC) + +LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib + +.$(SRCSUFF).obj: + *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< + +.rc.res: + *$(RC) -r -I$(INCLUDE) $< + +minimal.exe: minimal.obj minimal.def minimal.res + *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) + +clean: + -del *.obj + -del *.exe + -del *.res + -del *.map + -del *.rws diff --git a/samples/controls/makefile.unx b/samples/controls/makefile.unx new file mode 100644 index 0000000000..9685d06789 --- /dev/null +++ b/samples/controls/makefile.unx @@ -0,0 +1,58 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile for minimal example (UNIX). + +WXDIR = ../.. + +# All common UNIX compiler flags and options are now in +# this central makefile. +include $(WXDIR)/src/make.env + +OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) + +.SUFFIXES: + +all: $(OBJDIR) minimal$(GUISUFFIX) + +wx: + + +motif: + $(MAKE) -f makefile.unx GUISUFFIX=_motif GUI=-Dwx_motif GUISUFFIX=_motif OPT='$(OPT)' LDLIBS='$(MOTIFLDLIBS)' WXLIB=$(WXDIR)/lib/libwx_motif.a OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)' XVIEW_LINK= + +xview: + cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx xview + $(MAKE) -f makefile.unx GUI=-Dwx_xview GUISUFFIX=_ol CC=$(CC) OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)' + +hp: + cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx hp + $(MAKE) -f makefile.unx GUI=-Dwx_motif GUISUFFIX=_hp CC=CC DEBUG='$(DEBUG)' WARN='-w' \ + XINCLUDE='$(HPXINCLUDE)' XLIB='$(HPXLIB)' XVIEW_LINK='' LDLIBS='$(HPLDLIBS)' + +$(OBJDIR): + mkdir $(OBJDIR) + +minimal$(GUISUFFIX): $(OBJDIR)/minimal.$(OBJSUFF) $(WXLIB) + $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX) $(OBJDIR)/minimal.$(OBJSUFF) $(XVIEW_LINK) $(LDLIBS) + +$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) + +clean_motif: + $(MAKE) -f makefile.unx GUISUFFIX=_motif cleanany + +clean_ol: + $(MAKE) -f makefile.unx GUISUFFIX=_ol cleanany + +clean_hp: + $(MAKE) -f makefile.unx GUISUFFIX=_hp cleanany + +cleanany: + rm -f $(OBJECTS) minimal$(GUISUFFIX) core diff --git a/samples/controls/makefile.vms b/samples/controls/makefile.vms new file mode 100644 index 0000000000..9b76b144f3 --- /dev/null +++ b/samples/controls/makefile.vms @@ -0,0 +1,38 @@ +#************************************************************************ +# Makefile for MINIMAL under VMS +# by Stefan Hammes +# (incomplete) update history: +# 11.04.95 +#************************************************************************ + +#************************************************************************ +# Definition section +# (cave: definitions and includes must begin with ',') +#************************************************************************ + +APPOPTS = +APPDEFS = +APPINCS = + +#************************************************************************ +# Module section +#************************************************************************ + +# Name of main module +MAIN = minimal + +# Object modules of the application. +OBJS = minimal.obj +OBJLIST =minimal.obj + +.include [--.src]makevms.env + +# main dependency +$(MAIN).exe : $(OBJS) + $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option + - purge *.exe + +#************************************************************************ +# Header file depedencies following +#************************************************************************ + diff --git a/samples/controls/makefile.wat b/samples/controls/makefile.wat new file mode 100644 index 0000000000..21219d7a0e --- /dev/null +++ b/samples/controls/makefile.wat @@ -0,0 +1,43 @@ +# +# Makefile for WATCOM +# +# Created by D.Chubraev, chubraev@iem.ee.ethz.ch +# 8 Nov 1994 +# + +WXDIR = ..\.. + +!include $(WXDIR)\src\makewat.env + +WXLIB = $(WXDIR)\lib +NAME = minimal +LNK = $(name).lnk +OBJS = $(name).obj + +all: $(name).exe + +$(name).exe : $(OBJS) $(name).res $(LNK) $(WXLIB)\wx$(LEVEL).lib + wlink @$(LNK) + $(BINDCOMMAND) $(name).res + +$(name).res : $(name).rc $(WXDIR)\include\msw\wx.rc + $(RC) $(RESFLAGS1) $(name).rc + +$(LNK) : makefile.wat + %create $(LNK) + @%append $(LNK) debug all + @%append $(LNK) system $(LINKOPTION) + @%append $(LNK) $(MINDATA) + @%append $(LNK) $(MAXDATA) + @%append $(LNK) $(STACK) + @%append $(LNK) name $(name) + @%append $(LNK) file $(WXLIB)\wx$(LEVEL).lib + @for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i + @for %i in ($(OBJS)) do @%append $(LNK) file %i + +thing: .SYMBOLIC + echo $(WATLIBDIR) + +clean: .SYMBOLIC + -erase *.obj *.bak *.err *.pch *.lib *.lnk *.res *.exe + diff --git a/samples/controls/minimal.cpp b/samples/controls/minimal.cpp new file mode 100644 index 0000000000..bf209f8c4d --- /dev/null +++ b/samples/controls/minimal.cpp @@ -0,0 +1,208 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: minimal.cpp +// Purpose: Controls wxWindows sample +// Author: Robert Roebling +// Modified by: +// RCS-ID: $Id$ +// Copyright: (c) Robert Roebling, Julian Smart and Markus Holzem +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "minimal.cpp" +#pragma interface "minimal.cpp" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#include "wx/tabctrl.h" + +//---------------------------------------------------------------------- +// class definitions +//---------------------------------------------------------------------- + +class MyApp: public wxApp +{ + public: + bool OnInit(void); +}; + +class MyPanel: public wxPanel +{ + public: + + MyPanel(wxFrame *frame, int x, int y, int w, int h); + + void OnSize( wxSizeEvent& event ); + void OnListBox( wxCommandEvent &event ); + void OnListBoxButtons( wxCommandEvent &event ); + + wxListBox *m_listbox; + + wxTextCtrl *m_text; + wxTabCtrl *m_tab; + + DECLARE_EVENT_TABLE() +}; + +class MyFrame: public wxFrame +{ + public: + + MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); + + public: + + void OnQuit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); + bool OnClose(void) { return TRUE; } + + DECLARE_EVENT_TABLE() +}; + +//---------------------------------------------------------------------- +// main() +//---------------------------------------------------------------------- + +IMPLEMENT_APP (MyApp) + +//---------------------------------------------------------------------- +// MyApp +//---------------------------------------------------------------------- + +const MINIMAL_QUIT = 100; +const MINIMAL_TEXT = 101; +const MINIMAL_ABOUT = 102; + +bool MyApp::OnInit(void) +{ + // Create the main frame window + MyFrame *frame = new MyFrame(NULL, "Controls wxWindows App", 50, 50, 500, 420 ); + + // Give it an icon +#ifdef __WINDOWS__ + frame->SetIcon(wxIcon("mondrian")); +#endif +#ifdef __X__ + frame->SetIcon(wxIcon("aiai.xbm")); +#endif + + wxMenu *file_menu = new wxMenu; + + file_menu->Append(MINIMAL_ABOUT, "&About"); + file_menu->Append(MINIMAL_QUIT, "E&xit"); + wxMenuBar *menu_bar = new wxMenuBar; + menu_bar->Append(file_menu, "&File"); + frame->SetMenuBar(menu_bar); + + frame->Show(TRUE); + + SetTopWindow(frame); + + return TRUE; +} + +//---------------------------------------------------------------------- +// MyPanel +//---------------------------------------------------------------------- + +const MINIMAL_TAB = 1000; + +const ID_LISTBOX = 130; +const ID_LISTBOX_SEL_NUM = 131; +const ID_LISTBOX_SEL_STR = 132; +const ID_LISTBOX_CLEAR = 133; +const ID_LISTBOX_APPEND = 134; + +BEGIN_EVENT_TABLE(MyPanel, wxPanel) + EVT_SIZE ( MyPanel::OnSize) + EVT_LISTBOX (ID_LISTBOX, MyPanel::OnListBox) + EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_SEL_STR, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_CLEAR, MyPanel::OnListBoxButtons) + EVT_BUTTON (ID_LISTBOX_APPEND, MyPanel::OnListBoxButtons) +END_EVENT_TABLE() + +MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) : + wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ) +{ + m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE ); + + m_tab = new wxTabCtrl( this, MINIMAL_TAB, wxPoint(0,0), wxSize(200,150) ); + + wxString choices[4] = + { + "This", + "is", + "a", + "wonderfull example." + }; + + m_tab->InsertItem( 0, "wxList" ); + m_listbox = new wxListBox( m_tab, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 4, choices ); + (void)new wxButton( m_tab, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(140,30), wxSize(100,30) ); + (void)new wxButton( m_tab, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(260,30), wxSize(100,30) ); + (void)new wxButton( m_tab, ID_LISTBOX_CLEAR, "Clear", wxPoint(140,80), wxSize(100,30) ); + (void)new wxButton( m_tab, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(260,80), wxSize(100,30) ); + + m_tab->InsertItem( 1, "wxChoice" ); +} + +void MyPanel::OnSize( wxSizeEvent& WXUNUSED(event) ) +{ + int x = 0; + int y = 0; + GetClientSize( &x, &y ); + + if (m_tab) m_tab->SetSize( 2, 2, x-4, y/2-4 ); + if (m_text) m_text->SetSize( 2, y/2+2, x-4, y/2-4 ); +} + +void MyPanel::OnListBox( wxCommandEvent &event ) +{ + m_text->WriteText( "ListBox Event:\n"); + m_text->WriteText( "ListBox selection string is: " ); + m_text->WriteText( event.GetString() ); + m_text->WriteText( "\n" ); +} + +void MyPanel::OnListBoxButtons( wxCommandEvent &WXUNUSED(event) ) +{ +} + +//---------------------------------------------------------------------- +// MyFrame +//---------------------------------------------------------------------- + +BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit) + EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout) +END_EVENT_TABLE() + +MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): + wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) +{ + (void*) new MyPanel( this, 10, 10, 300, 100 ); +} + +void MyFrame::OnQuit (wxCommandEvent& WXUNUSED(event) ) +{ + Close(TRUE); +} + +void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) +{ + wxMessageDialog dialog(this, "This is a control sample", "About Controls", wxOK ); + dialog.ShowModal(); +} + + diff --git a/samples/controls/minimal.def b/samples/controls/minimal.def new file mode 100644 index 0000000000..060bfe3fce --- /dev/null +++ b/samples/controls/minimal.def @@ -0,0 +1,8 @@ +NAME Minimal +DESCRIPTION 'Minimal wxWindows application' +EXETYPE WINDOWS +STUB 'WINSTUB.EXE' +CODE PRELOAD MOVEABLE DISCARDABLE +DATA PRELOAD MOVEABLE MULTIPLE +HEAPSIZE 4048 +STACKSIZE 16000 diff --git a/samples/controls/minimal.rc b/samples/controls/minimal.rc new file mode 100644 index 0000000000..7655c62a4c --- /dev/null +++ b/samples/controls/minimal.rc @@ -0,0 +1,3 @@ +mondrian ICON "mondrian.ico" +#include "wx/msw/wx.rc" + diff --git a/samples/controls/mondrian.ico b/samples/controls/mondrian.ico new file mode 100644 index 0000000000..2310c5d275 Binary files /dev/null and b/samples/controls/mondrian.ico differ