NAME:

Package: uiBaseForm


SYNOPSIS:

use class::ui::uiBaseForm;


DIRECTORY/FILE:

The file uiBaseForm.pm is located in the subdirectory './class/ui'


DESCRIPTION:

This packages contains all functions that are needed to build and modify the user interface of a BaseForm object (BaseForm.pm).

Because BaseForm is only a never-directly used base class, it only conatins the build up of the very basic widgets: Toplevel, Menubar, Speedbar and Statusbar.

This is the stuff I don't like on the Tk toolkit: Large spaghetti-code just to produce the GUI of one Window. So I put all these functions in a separate file in ./class/ui, where every window has one file that produces the GUI. I try to prevent to work in these files often, because I hate them.

This package file is not designed to function as an object, so there are no attributes, no methods and no Get/Set functions, it is only a package of functions that belong thematically together (They are working with the same window object).

The windows object is placed in ./class, there is all of the windows functionality


STATUS:

Coding: 90% done

Documentation: up-do-date


FUNCTIONS:


build_ui

uiDocForm::build_ui($ref_form, $config_name);

Builds up the basic user interface of a Form object and stores the references to all created widgets in the $ref_docform->{'ui'} hash.

The attributes are accessed directly ($ref_docform->{'ui'}->{...}) because there is no Get/Set-method for each widget.

F.ex. the Toplevel is created in $ref_docform->{'ui'}->{'top'}.

Parameters:

(+) $ref_form: A reference to the BaseForm derived form object

(+) $config_name : The name of the section in edoc.cfg that describes the GUI


build_speedbar

uiBaseForm::build_speedbar($config_name, $ref_form);

Builds the speedbar and sets the commands to the right macros defined in 'edoc.cfg'

This is done in a seperate function, because its better to have an overview like this.

Parameters:

(+) $config_name: The name of the section in edoc.cfg that holds the info

(+) $ref_form: Reference to the object which user interface has to be created


build_menu

uiBaseForm::build_menu($config_name, $ref_form, $menu_name, $ref_menu_cfg, $ref_entrylist);

Builds a menu with the data from some configuration files:

The TOOLS menu is stored in the 'edoc.cfg'-file (can be in $form_class = 'PrjForm' and 'DocForm')

the BACKEND menu is stored in the '*.out' files (Only available in $form_class = 'DocForm').

Parameters:

(+) $config_name: The name of the section in edoc.cfg that holds the info

(+) $ref_form: Reference to the object which user interface has to be created

(+) $menu_name: The name of the menu in the main menu

(+) $ref_menu_cfg : A reference to a hash that contains the data for the menu

(+) $ref_entrylist : A referenece to an array that holds the names of the submenuitems sorted the way they were written in the configuration filé


KNOWN BUGS:


STILL MISSING: