|
#----------------------------------------------------
# Startup Perl Script
#
# This file contains the Perl executed at startup
#
#----------------------------------------------------
package GtkPizza;
use strict;
use Gtk;
use Gtk::GladeXML;
use Gtk::Keysyms;
use Gtk::Gdk::ImlibImage;
use DBI;
#
# Init GtkPerl
#
init Gtk;
Gtk::GladeXML->init;
init Gtk::Gdk::ImlibImage;
Gtk::Rc->parse("gtk_pizza.rc");
#
# Snapper Globals
#
# Debug flag
$GtkPizza::db_type = 'PG'; # or ORA
$GtkPizza::MaintMenu = 0;
$GtkPizza::current_store = 1;
$GtkPizza::default_store_string = '';
$GtkPizza::customer_number = 0;
$GtkPizza::is_new_cust = 0;
$GtkPizza::from_select = 0;
$GtkPizza::from_order = 0;
$GtkPizza::cust_deliv_override = 0;
$GtkPizza::cust_ubd_override = 0;
$GtkPizza::cust_min_override = 0;
$GtkPizza::inside = 0;
$GtkPizza::ok_to_populate = 0;
$GtkPizza::select_cust_screen_up= 0;
$GtkPizza::order_sa_lister_up = 0;
$GtkPizza::select_screen_up = 0;
$GtkPizza::customer_screen_up = 0;
$GtkPizza::allow_delete_order = 0;
$GtkPizza::display_page = 0;
%GtkPizza::order_row_data;
@GtkPizza::order_fields = ('1','2','3','4','5','6','7','8','9','10',
'11','12','13','14','15');
$GtkPizza::the_order = 0;
$GtkPizza::the_store = 0;
$GtkPizza::the_customer = 0;
$GtkPizza::do_change_code = 0;
$GtkPizza::date_has_changed = 0;
$GtkPizza::is_new = 0;
$GtkPizza::is_pickup = 0;
$GtkPizza::total_price_value = 0.0;
$GtkPizza::apply_discount = 1.0;
$GtkPizza::cust_deliv_charge = 0.0;
$GtkPizza::any_changes = 0;
$GtkPizza::from_cust = 0;
$GtkPizza::cancel_on_quit = 0;
$GtkPizza::is_same_again = 0;
%GtkPizza::key_menu_map = (
"$Gtk::Keysyms{'F1'}" => "Menu1.xpm",
"$Gtk::Keysyms{'F2'}" => "Menu2.xpm",
"$Gtk::Keysyms{'F3'}" => "Menu3.xpm",
"$Gtk::Keysyms{'F4'}" => "Menu4.xpm",
"$Gtk::Keysyms{'F5'}" => "Menu5.xpm",
"$Gtk::Keysyms{'F6'}" => "Menu6.xpm",
"$Gtk::Keysyms{'F7'}" => "Menu7.xpm",
"$Gtk::Keysyms{'F8'}" => "Menu8.xpm",
"$Gtk::Keysyms{'F9'}" => "Menu9.xpm",
"$Gtk::Keysyms{'F10'}" => "Menu10.xpm",
);
#
# Define DBI Globals and make main connection
#
# set as needed
my $dbmain = "hotpizza";
my $user = "pizza";
my $pass = "";
# optionally add ";host=$remotehost;port=$remoteport"
# or set the environment variable PGHOST
my $dsn = "dbi:Pg:dbname=$dbmain";
$GtkPizza::db = SharkAPI::DB->new($dsn, $user, $pass, { AutoCommit => 1 });
$GtkPizza::db->db_log(sub {my ($data) = @_;GtkPizza::log('SQL',$data);});
#
# Grab XML, Connect Signals, Then Show Main Window
#
my $xml_text = $Snapper::CurrentObject->get_glade_xml('MAIN');
$GtkPizza::MyXML = Gtk::GladeXML::new_from_memory('GladeXML', $xml_text);
$GtkPizza::MyXML->signal_autoconnect_from_package('Snapper');
#
# Show Login Screen
#
GtkPizza::log('MSG','startup.pl ending, bring out login window');
GtkPizza::do_login_screen();
#
# Drop into main loop
#
if (defined($GtkPizza::console)) {
$GtkPizza::console->console_pump(1); # set pump flag
# (it is now safe to pump events)
}
print "\ndropping into gtk_main!\n";
main Gtk;
#
# Generic Callbacks...
#
sub GtkPizza::log {
my ($type, $data, $prefix, $level) = @_;
return unless ($Snapper::debug);
my $text = 'msg';
$text .= ': ';
$text .= '( ' . $prefix .') ' if $prefix;
$text .= $data . "\n";
print $text;
}
sub GtkPizza::gtk_main_quit {
#main_quit Gtk;
Gtk->exit( 0 );
return 0;
}
sub GtkPizza::gtk_widget_hide {
shift->hide();
return 1;
}
sub GtkPizza::gtk_widget_show {
my ($w) = shift;
$w->show;
}
1;
|