… | |
… | |
842 | } |
842 | } |
843 | |
843 | |
844 | my $METASERVER_ATIME; |
844 | my $METASERVER_ATIME; |
845 | |
845 | |
846 | sub update_metaserver { |
846 | sub update_metaserver { |
|
|
847 | my ($metaserver_dialog) = @_; |
|
|
848 | |
|
|
849 | $METASERVER = $metaserver_dialog |
|
|
850 | if defined $metaserver_dialog; |
|
|
851 | |
847 | return if $METASERVER_ATIME > time; |
852 | return if $METASERVER_ATIME > time; |
848 | $METASERVER_ATIME = time + 60; |
853 | $METASERVER_ATIME = time + 60; |
849 | |
854 | |
850 | my $table = $METASERVER->{table}; |
855 | my $table = $METASERVER->{table}; |
851 | $table->clear; |
856 | $table->clear; |
… | |
… | |
939 | } |
944 | } |
940 | }); |
945 | }); |
941 | } |
946 | } |
942 | |
947 | |
943 | sub metaserver_dialog { |
948 | sub metaserver_dialog { |
|
|
949 | my $vbox = new CFClient::UI::VBox; |
|
|
950 | my $table = new CFClient::UI::Table; |
|
|
951 | $vbox->add (new CFClient::UI::ScrolledWindow expand => 1, child => $table); |
|
|
952 | |
944 | my $dialog = new CFClient::UI::FancyFrame |
953 | my $dialog = new CFClient::UI::FancyFrame |
945 | title => "Server List", |
954 | title => "Server List", |
946 | name => 'metaserver_dialog', |
955 | name => 'metaserver_dialog', |
947 | x => 'center', |
956 | x => 'center', |
948 | y => 'center', |
957 | y => 'center', |
949 | z => 3, |
958 | z => 3, |
950 | force_h => $::HEIGHT * 0.4, |
959 | force_h => $::HEIGHT * 0.4, |
951 | child => (my $vbox = new CFClient::UI::VBox), |
960 | child => $vbox, |
952 | has_close_button => 1, |
961 | has_close_button => 1, |
|
|
962 | table => $table, |
953 | on_visibility_change => sub { |
963 | on_visibility_change => sub { |
954 | update_metaserver if $_[1]; |
964 | update_metaserver ($_[0]) if $_[1]; |
955 | 0 |
965 | 0 |
956 | }, |
966 | }, |
957 | ; |
967 | ; |
958 | |
|
|
959 | $dialog->{table} = new CFClient::UI::Table; |
|
|
960 | |
|
|
961 | $vbox->add (new CFClient::UI::ScrolledWindow expand => 1, child => $dialog->{table}); |
|
|
962 | |
968 | |
963 | $dialog |
969 | $dialog |
964 | } |
970 | } |
965 | |
971 | |
966 | sub server_setup { |
972 | sub server_setup { |
… | |
… | |
981 | my ($self, $value) = @_; |
987 | my ($self, $value) = @_; |
982 | $CFG->{profile}{default}{host} = $value; |
988 | $CFG->{profile}{default}{host} = $value; |
983 | 0 |
989 | 0 |
984 | } |
990 | } |
985 | ); |
991 | ); |
986 | |
|
|
987 | $METASERVER = metaserver_dialog; |
|
|
988 | |
992 | |
989 | $vbox->add (new CFClient::UI::Button |
993 | $vbox->add (new CFClient::UI::Button |
990 | expand => 1, |
994 | expand => 1, |
991 | text => "Server List", |
995 | text => "Server List", |
992 | other => $METASERVER, |
996 | other => $METASERVER, |
… | |
… | |
1279 | x => "center", |
1283 | x => "center", |
1280 | y => "center", |
1284 | y => "center", |
1281 | force_w => $WIDTH * 9/10, |
1285 | force_w => $WIDTH * 9/10, |
1282 | force_h => $HEIGHT * 9/10, |
1286 | force_h => $HEIGHT * 9/10, |
1283 | title => "Inventory", |
1287 | title => "Inventory", |
|
|
1288 | name => "inventory_window", |
1284 | has_close_button => 1, |
1289 | has_close_button => 1, |
1285 | ; |
1290 | ; |
1286 | |
1291 | |
1287 | $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1); |
1292 | $invwin->add (my $hb = new CFClient::UI::HBox homogeneous => 1); |
1288 | |
1293 | |
… | |
… | |
1577 | z => 2, |
1582 | z => 2, |
1578 | force_w => $::WIDTH * 0.6, |
1583 | force_w => $::WIDTH * 0.6, |
1579 | force_h => $::HEIGHT * 0.6, |
1584 | force_h => $::HEIGHT * 0.6, |
1580 | has_close_button => 1, |
1585 | has_close_button => 1, |
1581 | ; |
1586 | ; |
|
|
1587 | |
|
|
1588 | $METASERVER = metaserver_dialog; |
1582 | |
1589 | |
1583 | $SETUP_DIALOG->add ($SETUP_NOTEBOOK = new CFClient::UI::Notebook expand => 1, debug => 1, |
1590 | $SETUP_DIALOG->add ($SETUP_NOTEBOOK = new CFClient::UI::Notebook expand => 1, debug => 1, |
1584 | filter => new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1); |
1591 | filter => new CFClient::UI::ScrolledWindow expand => 1, scroll_y => 1); |
1585 | |
1592 | |
1586 | $SETUP_NOTEBOOK->add (Server => $SETUP_SERVER = server_setup, |
1593 | $SETUP_NOTEBOOK->add (Server => $SETUP_SERVER = server_setup, |