#!/usr/bin/perl # Basic Includes use 5.6.1; #use strict; use warnings; use Getopt::Long; use Date::Calc qw(:all); # GUI Includes use Tk; use Tk::NoteBook; # DB Includes use DBI qw(:sql_types); use vars qw( @stores $filename $noopen $db $techemail ); my $DataBlock; sub CreateMainGUI { # Create MainWindow & Notebook my $ParentWindow = MainWindow->new(); my $ParentNotebook = $ParentWindow->NoteBook()->pack( -fill=>'both', -expand=>1 ); # Store the GUI in our Datablock $DataBlock->{'GUI'}->{'ParentWindow'} = $ParentWindow; $DataBlock->{'GUI'}->{'ParentNotebook'} = $ParentNotebook; # Set the window Size $ParentWindow->geometry( "800x600+112+84" ); $ParentWindow->minsize( qw(640 480) ); $ParentWindow->maxsize( qw(1024 768) ); $ParentWindow->configure(-title=>"TechCentral - Ruscomp Edition"); $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} = $ParentNotebook->add( "Tab_Home", -label=>"Home", -createcmd=>\&CreateGUI_HomeTab ); #my $tab2 = $ParentNotebook->add( "Tab-Settings", -label=>"Settings", -raisecmd=>\&getCurrentTime); #my $tab3 = $ParentNotebook->add( "Tab-OpenOrderReport", -label=>"Open Order Report", -state=>'disabled' ); #my $tab4 = $ParentNotebook->add( "Tab-OrderSearchEntry", -label=>"Order Search", -state=>'disabled' ); #my $tab4 = $ParentNotebook->add( "Tab-OrderSearchResults", -label=>"Order Search Results", -state=>'disabled' ); $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Label( -textvariable=>\$starttime )->pack( -expand=>1 ); #$tab2->Label( -textvariable=>\$raisetime )->pack( -expand=>1 ); #$tab3->Button( -text=>'Quit', -command=>sub{ exit; } )->pack( -expand=>1 ); } CreateMainGUI(); MainLoop; sub CreateGUI_HomeTab { my $HomeTabGrid = $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Frame()->pack ( -side => 'top' ) ; # # Page Generation ############################## ## Create New Ticket Button $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Create New Ticket', -command=>sub{ $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} = $DataBlock->{'GUI'}->{'ParentNotebook'}->add( "Tab-NewOrder", -label=>"New Order", -raisecmd=>\&getCurrentTime #ToDo: Fix this entry ); }, -state=>'disabled', )->grid(-column => 2, -row => 2); ############################## ## Create Order Search Button $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Order Search', -command=>sub{ $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} = $DataBlock->{'GUI'}->{'ParentNotebook'}->add( "Tab-OrderSearch", -label=>"Order Search", -raisecmd=>\&getCurrentTime #ToDo: Fix this entry ); }, -state=>'disabled' )->grid(-column => 2, -row => 4); ############################## ## Create Open Order Report Button $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Open Order Report', -command=>sub{ $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} = $DataBlock->{'GUI'}->{'ParentNotebook'}->add( "Tab-OOReport", -label=>"New Order", -raisecmd=>\&getCurrentTime #ToDo: Fix this entry ); }, -state=>'disabled' )->grid(-column => 2, -row => 6); ############################## ## Create Statistics Button $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Statistics', -command=>sub{ $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} = $DataBlock->{'GUI'}->{'ParentNotebook'}->add( "Tab-Statistics", -label=>"Statistics", -raisecmd=>\&getCurrentTime #ToDo: Fix this entry ); }, -state=>'disabled' )->grid(-column => 2, -row => 8); ############################## ## Create Settings Button $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Settings', -command=>sub{ $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Settings'} = $DataBlock->{'GUI'}->{'ParentNotebook'}->add( "Tab-Settings", -label=>"Settings", -raisecmd=>\&CreateGUI_SettingsTab ); } )->grid(-column => 2, -row => 10); ############################## ## Quit Program $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Quit', -command=>sub{ exit; } )->grid(-column => 2, -row => 12); } sub CreateGUI_SettingsTab { ############################## ## Save Settings $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Settings'}->Button( -text=>'Save Settings', -command=>sub{ # Save settings here. $DataBlock->{'GUI'}->{'ParentNotebook'}->delete('Tab-Settings'); }, )->pack( -expand=>1 ); } sub getStartTime { $starttime = "Started at " . localtime; } sub getCurrentTime { $raisetime = " Last raised at " . localtime; $DataBlock->{'GUI'}->{'ParentNotebook'}->pageconfigure( "Sheet 3", -state=>'normal' ); }