CREATE STATUSBAR/TOOLBAR Example


Example:

 

$PLBCONST

EQU

1

  

INCLUDE

PLBEQU.INC

*

 

 

.Define the objects and variables

.

 

 

WINDOW1

WINDOW

 

ETEXT1

EDITTEXT

 

TOOL1

TOOLBAR

 

STATUS1

STATUSBAR

 

FMENU

MENU

 

TIMER1

TIMER

 

.

 

 

RESULT

FORM

9

TEXT

DIM

32767

STRING

DIM

1024

FILEITEM

INIT

"&File;E&xit"

DATE

DIM

8

TIME

DIM

5

ZERO

FORM

"0"

NAME

DIM

100

PATH

DIM

100

FNAME

DIM

200

SEQ

FORM

"-1"

NL

INIT

0x7F

HEIGHT

FORM

7

WIDTH

FORM

7

.

 

 

FILE

FILE

 

*........................................................................

.Hide the main window

.

 

 

  

WINHIDE

 

*

 

 

.Create the Window

.

 

 

  

CREATE

WINDOW1=100:450:100:500:

  

  

TITLE="Notes",WINTYPE=$PRIMARYSIZE,BGCOLOR=$BTNFACE

  

EVENTREGISTER

WINDOW1,$CLOSE,EXIT

  

EVENTREGISTER

WINDOW1,$RESIZE,RESIZE

*

 

 

.Add the Menu

.

 

 

  

CREATE

WINDOW1;FMENU,FILEITEM

*

 

 

.Create the Edittext Field

.

 

 

  

CREATE

WINDOW1;ETEXT1=30:300:10:390:

  

  

BORDER=$ON,MULTILINE,SCROLLBAR

  

EVENTREGISTER

ETEXT1,$KEYPRESS,TOGGLE

*

 

 

.Create the Toolbar

.

 

 

  

CREATE

WINDOW1;TOOL1=55:80:10:390,SHOWTIPS=$ON:

  

  

APPEARANCE=$3D,DOCK=$WINDOCKTOP

.

 

 

  

TOOL1.ADDBUTTON

USING *IMAGEINDEX=1,*Tooltip="New",*Tag=1

  

TOOL1.ADDBUTTON

USING *IMAGEINDEX=2,*Tooltip="Open",*Tag=2

  

TOOL1.ADDBUTTON

USING *BtnStyle=$TBSTYLESEP

  

TOOL1.ADDBUTTON

USING *IMAGEINDEX=4,*Tooltip="Cut",*Tag=3

  

TOOL1.ADDBUTTON

USING *IMAGEINDEX=5,*Tooltip="Copy",*Tag=4

  

TOOL1.ADDBUTTON

USING *IMAGEINDEX=6,*Tooltip="Paste",*Tag=5

*

 

 

.Create the Statusbar

.

 

 

  

CREATE

WINDOW1;STATUS1=400:450:10:390:

  

  

DOCK=$WINDOCKBOTTOM,SHOWPANEL=$TRUE:

  

  

FONT="'>MS Sans Serif'(8)"

.

 

 

  

CLOCK

DATE,DATE

  

STATUS1.ADDPANEL USING 0,$PANSIZECONTENTS,$FIXED3D,0,DATE

.

 

 

  

CLOCK

TIME,TIME

  

STATUS1.ADDPANEL USING 0,$PANSIZECONTENTS,$FIXED3D,0,TIME

.

 

 

  

STATUS1.ADDPANEL USING 0,$PANSIZECONTENTS,$FIXED3D,0,"Ovr"

.

 

 

  

STATUS1.ADDPANEL USING 0,$PANSIZESPRING,$FIXED3D,200,""

*

 

 

.Create a Timer

.

 

 

  

CREATE

TIMER1,600

  

ACTIVATE

TIMER1,UPDTIME,RESULT

*

 

 

.Activate the objects

.

 

 

  

ACTIVATE

WINDOW1

  

EVENTREGISTER

WINDOW1,$CLOSE,EXIT

  

ACTIVATE

FMENU,EXIT,RESULT

  

ACTIVATE

ETEXT1

  

ACTIVATE

TOOL1,TOOLCMD,RESULT

  

ACTIVATE

STATUS1

  

SETFOCUS

ETEXT1

*

 

 

.Wait for an Event to Occur

.

 

 

  

LOOP

 

  

  EVENTWAIT

 

  

REPEAT

 

*

 

 

.The Window was resized

.

 

 

RESIZE

 

 

  

GETPROP

WINDOW1,HEIGHT=HEIGHT

  

GETPROP

WINDOW1,WIDTH=WIDTH

  

SETPROP

ETEXT1,HEIGHT=(HEIGHT - 60)

  

SETPROP

ETEXT1,WIDTH=(WIDTH-20)

  

RETURN

 

*

 

 

.The Insert key was pressed

.

 

 

TOGGLE

 

 

  

EVENTINFO

0,RESULT=RESULT

  

RETURN

IF (RESULT = 0)

.

 

 

  

IF

(RESULT = $vkyIns)

  

GETPROP

ETEXT1,OVERTYPE=RESULT

  

IF

ZERO

  

SETPROP

ETEXT1,OVERTYPE=$TRUE

  

SETPROP

STATUS1.Panels(2),TEXT="Ins"

  

ELSE

 

  

SETPROP

ETEXT1,OVERTYPE=$FALSE

  

SETPROP

STATUS1.Panels(2),Text="Ovr"

  

ENDIF

 

  

ENDIF

 

*

 

 

.Timer Expired

.

 

 

UPDTIME

 

 

  

CLOCK

TIME,TIME

  

SETPROP

STATUS1.Panels(1),TEXT=TIME

  

RETURN

 

*

 

 

.Toolbar Button Clicked

.

 

 

TOOLCMD

 

 

  

BRANCH

RESULT TO NEW,OPEN,CUT,COPY,PASTE

  

RETURN

 

*

 

 

.New Toolbutton Clicked

.

 

 

NEW

 

 

  

SETITEM

ETEXT1,0,""

  

RETURN

 

*

 

 

.Open Toolbutton Clicked

.

 

 

OPEN

 

 

  

GETFNAME

WINDOW1;OPEN,"Open",NAME,PATH,"PLS"

  

RETURN

IF OVER

.

 

 

  

PACK

FNAME WITH PATH,NAME

  

OPEN

FILE,FNAME,READ

.

 

 

  

CLEAR

TEXT

  

LOOP

 

  

READ

FILE,SEQ;STRING

  

WHILE

NOT OVER

.

 

 

  

APPEND

STRING,TEXT

  

APPEND

NL,TEXT

  

REPEAT

 

.

 

 

  

CLOSE

FILE

  

RESET

TEXT

  

SETITEM

ETEXT1,0,TEXT

  

SETPROP

STATUS1.Panels(3),TEXT=FNAME

  

RETURN

 

*

 

 

.Cut Toolbutton Clicked

.

 

 

CUT

 

 

  

GETITEM

ETEXT1,1,STRING

  

CLIPSET

STRING

  

SETITEM

ETEXT1,1,""

  

RETURN

 

*

 

 

.Copy Toolbutton Clicked

.

 

 

COPY

 

 

  

GETITEM

ETEXT1,1,STRING

  

CLIPSET

STRING

  

RETURN

 

*

 

 

.Paste Toolbutton Clicked

.

 

 

PASTE

 

 

  

CLIPGET

STRING

  

SETITEM

ETEXT1,1,STRING

  

RETURN

 

*

 

 

.Exit Requested

.

 

 

EXIT

 

 

  

STOP

 

 

This example creates a simple note editor. The TOOLBAR allows new, open, cut, copy, paste activities. Icons for the TOOLBAR come from the default set provided automatically with the object. The STATUSBAR maintains the current date, time, and open file name on the bottom of the WINDOW.

 



PL/B Language Reference CREATE STATTEXT Example CREATE SUBMENU Example