Commit 5c2ccbaa authored by Marcus Nordenberg's avatar Marcus Nordenberg

rt_xtt: Operator window popup placement + show all available function buttons by default

parent be9d0585
!
!
! ProviewR Open Source Process Control.
! Copyright (C) 2005-2019 SSAB EMEA AB.
!
!
! This file is part of ProviewR.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! You should have received a copy of the GNU General Public License
! along with ProviewR. If not, see <http://www.gnu.org/licenses/>
!
!
! Linking ProviewR statically or dynamically with other modules is
! making a combined work based on ProviewR. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! conditions of the GNU General Public License cover the whole
! combination.
!
!
! In addition, as a special exception, the copyright holders of
! ProviewR give you permission to, from the build function in the
! ProviewR Configurator, combine ProviewR with modules generated by the
! ProviewR PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of ProviewR (the version used to produce the
! combined work), being distributed under the terms of the GNU
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_opplace.wb_load -- Defines the class OpPlace.
......@@ -43,28 +43,28 @@ SObject pwrb:Class
! Configures a logical operator station for operator
! dialogue. A logical operator station represents a work
! station, X-terminal etc.
!
!
! The object specifies where files are to be fetched and
! on which screen they are to be displayed.
! Put the object below the actual $Node object in the
! Node Configuration.
!
!
! There may be one or more OpPlace objects below a $Node
! object.
! object.
!*/
Object OpPlace $ClassDef 164
Object OpPlace $ClassDef 164
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "OpPlace"
EndBody
!/**
! Optional text to describe the user category etc.
!*/
Object Description $Attribute 1
Object Description $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
......@@ -79,9 +79,9 @@ SObject pwrb:Class
! Note! If XttUseOpsysUser is set in the Security object, this value is
! overrided, and the username is fetched from the current operator system user.
!
! The UserName is a constant value and can not be changed in runtime.
! The UserName is a constant value and can not be changed in runtime.
!*/
Object UserName $Attribute 28
Object UserName $Attribute 28
Body SysBody
Attr TypeRef = "pwrs:Type-$String32"
Attr Flags |= PWR_MASK_CONST
......@@ -92,17 +92,17 @@ SObject pwrb:Class
! Only if the user has logged in to the operator system as
! one of these user he has authority to start this operator place.
!*/
Object DedicatedOpsysUser $Attribute 29
Object DedicatedOpsysUser $Attribute 29
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
Attr Flags |= PWR_MASK_CONST
EndBody
EndObject
!/**
! Specifies on which monitor the operator dialogue will
! Specifies on which display the operator dialogue will
! take place.
! If the operator communication is run on the local node
! and the display is to be displayed on the own monitor
! and the display is to be displayed on the own display
! ('default display') the Display attribute ought to be
! left blank.
!*/
......@@ -144,7 +144,7 @@ SObject pwrb:Class
! XttGraph object which is to be activated by a function
! button in the operator window. The buttons are are ordered
! in five rows with five buttons in each row.
! The first row contains buttons for FastAvail[0] - FastAvail[4],
! The first row contains buttons for FastAvail[0] - FastAvail[4],
! the second for FastAvail[5] - FastAVail[9] etc.
!*/
Object FastAvail $Attribute 32
......@@ -209,7 +209,7 @@ SObject pwrb:Class
! Operatorplace options.
! - OperatorLog will turn on the operator logging when rt_xtt is started.
! The logging is stored in $pwrp_log/xtt_'opplace'.log
! - OperatorExendedLog will also store all mouse and motion events in the
! - OperatorExendedLog will also store all mouse and motion events in the
! logfile.
!*/
Object Options $Attribute 47
......@@ -228,7 +228,7 @@ SObject pwrb:Class
!/**
! Specifies the maximum number of contemporary alarms in
! the user's alarm list.
! The number should exceed the maximum number of
! The number should exceed the maximum number of
! concurrent alarms in the system.
! If the limit is exceeded, alarms might be lost.
!*/
......@@ -246,7 +246,7 @@ SObject pwrb:Class
! in respective node. In each node the message handler
! has its own skyline of events (also named MaxNoOfEvents)
! defined by a MessageHandler object. In principle, the
! User object's skyline of events should be selected as å
! User object's skyline of events should be selected as
! MaxNoOfEvents, added up over MaxNoOfEvents in the
! MessageHandler objects in all nodes throughout the
! ProviewR system, or make it simple and assign the
......@@ -275,13 +275,13 @@ SObject pwrb:Class
! produced in an application by means of mh_ApplMessage
! (see ProviewR Programmer's Reference Manual) get an
! identity according to the calling parameter EventName.
!
!
! SelectList specifies the hierarchies from which
! messages are to be sent to the user. Up to 40 different
! hierarchies can be specified. If messages from e.g. a
! Watchdog object in a node will be received, then the
! name of the node will be specified.
!
!
! Note! If the SelectList is left blank no message at all is
! sent to the user.
!*/
......@@ -296,7 +296,7 @@ SObject pwrb:Class
! Specifies the type of events that are sent to the user.
! If no type is specified, all types av events are sent.
!*/
Object EventSelectType $Attribute 49
Object EventSelectType $Attribute 49
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
......@@ -304,7 +304,7 @@ SObject pwrb:Class
!/**
! Specifies the type of events viewed in the eventlist.
!*/
Object EventListEvents $Attribute 43
Object EventListEvents $Attribute 43
Body SysBody
Attr TypeRef = "pwrb:Type-EventListMask"
EndBody
......@@ -356,16 +356,28 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Override on what monitor the operator panel will show up. Default 0
! will use the primary monitor of the system. A value of 1 selects the first
! monitor and so on and so forth.
!*/
Object Monitor $Attribute 53
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags = 0
EndBody
EndObject
EndObject
Object Template OpPlace
Body RtBody
Attr AlarmBell = 1
Attr BellDelay = 2
Attr OpWindPop = 3
Attr OpWindPop = 3
Attr OpWindEventNameSegments = 2
Attr MaxNoOfAlarms = 200
Attr MaxNoOfEvents = 500
Attr Monitor = 0
EndBody
EndObject
Object FastAvail $ReferenceList
......
......@@ -80,9 +80,11 @@ static void cnv_pango_text(char* in, char* out, int size)
char* s = in;
char* t = out;
for (int i = 0; i < size && *s; i++, s++) {
for (int i = 0; i < size && *s; i++, s++)
{
*(t++) = *s;
if (*s == '&') {
if (*s == '&')
{
// & -> &amp;
if (i + 4 >= size)
break;
......@@ -96,12 +98,11 @@ static void cnv_pango_text(char* in, char* out, int size)
}
OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
pwr_tStatus* status)
pwr_tStatus* status)
: Op(op_parent_ctx, opplace, status), parent_wid(op_parent_wid),
title_label(0), a_height(2), text_size(12)
title_label(0), a_height(5), text_size(12)
{
pwr_tStatus sts;
GdkRectangle xtt_monitor_geometry;
GdkColor black_color;
memset(a_exist, 0, sizeof(a_exist));
......@@ -114,15 +115,12 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gdk_color_parse("Black", &black_color);
gdk_color_parse("White", &white_color);
toplevel = (GtkWidget*)g_object_new(GTK_TYPE_WINDOW, "default-height",
OP_HEIGHT_MIN, "default-width", 1100, NULL);
toplevel =
(GtkWidget*)g_object_new(GTK_TYPE_WINDOW, "default-height", OP_HEIGHT_MIN,
"default-width", 1100, NULL);
gtk_window_set_decorated(GTK_WINDOW(toplevel), FALSE);
CoWowGtk::SetWindowIcon(toplevel);
GdkScreen* xtt_screen = gtk_widget_get_screen(toplevel);
int xtt_monitor = gdk_screen_get_monitor_at_point(xtt_screen, 0, 0);
gdk_screen_get_monitor_geometry(
xtt_screen, xtt_monitor, &xtt_monitor_geometry);
pwr_tFileName fname;
dcli_translate_filename(fname, "$pwr_exe/xtt_alarm_active.png");
......@@ -284,8 +282,8 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_container_add(GTK_CONTAINER(aalarm_ack), gtk_image_new_from_file(fname));
gtk_widget_set_size_request(aalarm_ack, 30, 20);
gtk_widget_set_size_request(aalarm_mark, -1, 20);
g_signal_connect(
aalarm_ack, "clicked", G_CALLBACK(activate_aalarm_ack), this);
g_signal_connect(aalarm_ack, "clicked", G_CALLBACK(activate_aalarm_ack),
this);
// Increment size button
GtkWidget* incr_button = gtk_button_new();
......@@ -293,16 +291,16 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_container_add(GTK_CONTAINER(incr_button), gtk_image_new_from_file(fname));
gtk_widget_set_size_request(incr_button, 30, 20);
gtk_widget_set_size_request(alarmcnt_label, -1, 20);
g_signal_connect(
incr_button, "clicked", G_CALLBACK(activate_aalarm_incr), this);
g_signal_connect(incr_button, "clicked", G_CALLBACK(activate_aalarm_incr),
this);
// Decrement size button
decr_button = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_up.png");
gtk_container_add(GTK_CONTAINER(decr_button), gtk_image_new_from_file(fname));
gtk_widget_set_size_request(decr_button, 30, 20);
g_signal_connect(
decr_button, "clicked", G_CALLBACK(activate_aalarm_decr), this);
g_signal_connect(decr_button, "clicked", G_CALLBACK(activate_aalarm_decr),
this);
// Acknowledge button for b alarms
GtkWidget* balarm_ack = gtk_button_new();
......@@ -310,8 +308,8 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_container_add(GTK_CONTAINER(balarm_ack), gtk_image_new_from_file(fname));
gtk_widget_set_size_request(balarm_ack, 30, 20);
gtk_widget_set_size_request(balarm_mark, -1, 20);
g_signal_connect(
balarm_ack, "clicked", G_CALLBACK(activate_balarm_ack), this);
g_signal_connect(balarm_ack, "clicked", G_CALLBACK(activate_balarm_ack),
this);
GtkWidget* hbox_abutton = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox_abutton), aalarm_ack, FALSE, FALSE, 2);
......@@ -348,8 +346,8 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
// Menu
// Accelerators
GtkAccelGroup* accel_g
= (GtkAccelGroup*)g_object_new(GTK_TYPE_ACCEL_GROUP, NULL);
GtkAccelGroup* accel_g =
(GtkAccelGroup*)g_object_new(GTK_TYPE_ACCEL_GROUP, NULL);
gtk_window_add_accel_group(GTK_WINDOW(toplevel), accel_g);
menu_bar = (GtkMenuBar*)g_object_new(GTK_TYPE_MENU_BAR, NULL);
......@@ -361,47 +359,47 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
CoWowGtk::translate_utf8("_AlarmList"));
dcli_translate_filename(fname, "$pwr_exe/xtt_alarmlist.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_alarm_alarmlist),
gtk_image_new_from_file(fname));
gtk_image_new_from_file(fname));
g_signal_connect(functions_alarm_alarmlist, "activate",
G_CALLBACK(activate_alarmlist), this);
G_CALLBACK(activate_alarmlist), this);
GtkWidget* functions_alarm_eventlist = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_EventList"));
dcli_translate_filename(fname, "$pwr_exe/xtt_eventlist.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_alarm_eventlist),
gtk_image_new_from_file(fname));
gtk_image_new_from_file(fname));
g_signal_connect(functions_alarm_eventlist, "activate",
G_CALLBACK(activate_eventlist), this);
G_CALLBACK(activate_eventlist), this);
GtkWidget* functions_alarm_eventlog = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("Event_Log"));
dcli_translate_filename(fname, "$pwr_exe/xtt_eventlog.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_alarm_eventlog),
gtk_image_new_from_file(fname));
gtk_image_new_from_file(fname));
g_signal_connect(functions_alarm_eventlog, "activate",
G_CALLBACK(activate_eventlog), this);
G_CALLBACK(activate_eventlog), this);
GtkWidget* functions_alarm_blocklist = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_BlockList"));
dcli_translate_filename(fname, "$pwr_exe/xtt_blocklist.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_alarm_blocklist),
gtk_image_new_from_file(fname));
gtk_image_new_from_file(fname));
g_signal_connect(functions_alarm_blocklist, "activate",
G_CALLBACK(activate_blocklist), this);
G_CALLBACK(activate_blocklist), this);
GtkWidget* functions_alarm
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Alarm"));
GtkWidget* functions_alarm =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Alarm"));
GtkMenu* functions_alarm_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_alarm_menu), functions_alarm_alarmlist);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_alarm_menu), functions_alarm_eventlist);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_alarm_menu), functions_alarm_eventlog);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_alarm_menu), functions_alarm_blocklist);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions_alarm), GTK_WIDGET(functions_alarm_menu));
gtk_menu_shell_append(GTK_MENU_SHELL(functions_alarm_menu),
functions_alarm_alarmlist);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_alarm_menu),
functions_alarm_eventlist);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_alarm_menu),
functions_alarm_eventlog);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_alarm_menu),
functions_alarm_blocklist);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions_alarm),
GTK_WIDGET(functions_alarm_menu));
// End Alarm submenu
// Submenu Curves
......@@ -409,171 +407,172 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
CoWowGtk::translate_utf8("_Trends"));
dcli_translate_filename(fname, "$pwr_exe/xtt_meth_trend.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_curves_trend),
gtk_image_new_from_file(fname));
g_signal_connect(
functions_curves_trend, "activate", G_CALLBACK(activate_trend), this);
gtk_image_new_from_file(fname));
g_signal_connect(functions_curves_trend, "activate",
G_CALLBACK(activate_trend), this);
GtkWidget* functions_curves_fast = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Fast"));
GtkWidget* functions_curves_fast =
gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Fast"));
dcli_translate_filename(fname, "$pwr_exe/xtt_meth_fast.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_curves_fast),
gtk_image_new_from_file(fname));
g_signal_connect(
functions_curves_fast, "activate", G_CALLBACK(activate_fast), this);
gtk_image_new_from_file(fname));
g_signal_connect(functions_curves_fast, "activate", G_CALLBACK(activate_fast),
this);
GtkWidget* functions_curves_history = gtk_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Process History"));
g_signal_connect(
functions_curves_history, "activate", G_CALLBACK(activate_history), this);
g_signal_connect(functions_curves_history, "activate",
G_CALLBACK(activate_history), this);
GtkWidget* functions_curves
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Curves"));
GtkWidget* functions_curves =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Curves"));
GtkMenu* functions_curves_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_curves_menu), functions_curves_trend);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_curves_menu), functions_curves_fast);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_curves_menu), functions_curves_history);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions_curves), GTK_WIDGET(functions_curves_menu));
gtk_menu_shell_append(GTK_MENU_SHELL(functions_curves_menu),
functions_curves_trend);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_curves_menu),
functions_curves_fast);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_curves_menu),
functions_curves_history);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions_curves),
GTK_WIDGET(functions_curves_menu));
// End Curves submenu
// Submenu View
GtkWidget* functions_view_colortheme = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Color theme"));
g_signal_connect(functions_view_colortheme, "activate",
G_CALLBACK(activate_colortheme), this);
G_CALLBACK(activate_colortheme), this);
GtkWidget* functions_view_incr = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Larger Text"));
dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_in.png");
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions_view_incr), gtk_image_new_from_file(fname));
g_signal_connect(
functions_view_incr, "activate", G_CALLBACK(activate_zoom_in), this);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_view_incr),
gtk_image_new_from_file(fname));
g_signal_connect(functions_view_incr, "activate",
G_CALLBACK(activate_zoom_in), this);
GtkWidget* functions_view_decr = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Smaller Text"));
dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_out.png");
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions_view_decr), gtk_image_new_from_file(fname));
g_signal_connect(
functions_view_decr, "activate", G_CALLBACK(activate_zoom_out), this);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_view_decr),
gtk_image_new_from_file(fname));
g_signal_connect(functions_view_decr, "activate",
G_CALLBACK(activate_zoom_out), this);
GtkWidget* functions_view
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_View"));
GtkWidget* functions_view =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_View"));
GtkMenu* functions_view_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_view_menu), functions_view_colortheme);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_view_menu), functions_view_incr);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_view_menu), functions_view_decr);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions_view), GTK_WIDGET(functions_view_menu));
gtk_menu_shell_append(GTK_MENU_SHELL(functions_view_menu),
functions_view_colortheme);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_view_menu),
functions_view_incr);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_view_menu),
functions_view_decr);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions_view),
GTK_WIDGET(functions_view_menu));
// End View submenu
// Submenu User
GtkWidget* functions_user_switch = gtk_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("S_witch User"));
GtkWidget* functions_user_switch =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("S_witch User"));
g_signal_connect(functions_user_switch, "activate",
G_CALLBACK(activate_switch_user), this);
G_CALLBACK(activate_switch_user), this);
GtkWidget* functions_user_show
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Show User"));
g_signal_connect(
functions_user_show, "activate", G_CALLBACK(activate_show_user), this);
GtkWidget* functions_user_show =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Show User"));
g_signal_connect(functions_user_show, "activate",
G_CALLBACK(activate_show_user), this);
GtkWidget* functions_user_logout
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Return"));
g_signal_connect(
functions_user_logout, "activate", G_CALLBACK(activate_logout), this);
GtkWidget* functions_user_logout =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Return"));
g_signal_connect(functions_user_logout, "activate",
G_CALLBACK(activate_logout), this);
GtkWidget* functions_user
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_User"));
GtkWidget* functions_user =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_User"));
GtkMenu* functions_user_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_user_menu), functions_user_switch);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_user_menu), functions_user_show);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_user_menu), functions_user_logout);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions_user), GTK_WIDGET(functions_user_menu));
gtk_menu_shell_append(GTK_MENU_SHELL(functions_user_menu),
functions_user_switch);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_user_menu),
functions_user_show);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_user_menu),
functions_user_logout);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions_user),
GTK_WIDGET(functions_user_menu));
// End User submenu
GtkWidget* functions_navigator = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Navigator"));
dcli_translate_filename(fname, "$pwr_exe/xtt_navigator.png");
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions_navigator), gtk_image_new_from_file(fname));
g_signal_connect(
functions_navigator, "activate", G_CALLBACK(activate_navigator), this);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_navigator),
gtk_image_new_from_file(fname));
g_signal_connect(functions_navigator, "activate",
G_CALLBACK(activate_navigator), this);
// gtk_widget_add_accelerator( functions_navigator, "activate", accel_g,
// 'd', GdkModifierType(GDK_CONTROL_MASK),
//GTK_ACCEL_VISIBLE);
// GTK_ACCEL_VISIBLE);
GtkWidget* functions_graph = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Process Graphics"));
dcli_translate_filename(fname, "$pwr_exe/wtt_ge.png"); // TODO
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions_graph), gtk_image_new_from_file(fname));
g_signal_connect(
functions_graph, "activate", G_CALLBACK(activate_graph), this);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_graph),
gtk_image_new_from_file(fname));
g_signal_connect(functions_graph, "activate", G_CALLBACK(activate_graph),
this);
// gtk_widget_add_accelerator( functions_graph, "activate", accel_g,
// 'g', GdkModifierType(GDK_CONTROL_MASK),
//GTK_ACCEL_VISIBLE);
// GTK_ACCEL_VISIBLE);
// Submenu Help
GtkWidget* functions_help_project = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Project"));
dcli_translate_filename(fname, "$pwr_exe/xtt_help.png");
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_help_project),
gtk_image_new_from_file(fname));
g_signal_connect(
functions_help_project, "activate", G_CALLBACK(activate_help), this);
gtk_image_new_from_file(fname));
g_signal_connect(functions_help_project, "activate",
G_CALLBACK(activate_help), this);
GtkWidget* functions_help_overview
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Overview"));
GtkWidget* functions_help_overview =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Overview"));
g_signal_connect(functions_help_overview, "activate",
G_CALLBACK(activate_help_overview), this);
G_CALLBACK(activate_help_overview), this);
GtkWidget* functions_help_opwin = gtk_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_OperatorWindow"));
g_signal_connect(
functions_help_opwin, "activate", G_CALLBACK(activate_help_opwin), this);
g_signal_connect(functions_help_opwin, "activate",
G_CALLBACK(activate_help_opwin), this);
GtkWidget* functions_help_proview = gtk_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_About ProviewR"));
g_signal_connect(functions_help_proview, "activate",
G_CALLBACK(activate_help_proview), this);
G_CALLBACK(activate_help_proview), this);
GtkWidget* functions_help
= gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help"));
GtkWidget* functions_help =
gtk_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Help"));
GtkMenu* functions_help_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_help_menu), functions_help_project);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_help_menu), functions_help_overview);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_help_menu), functions_help_opwin);
gtk_menu_shell_append(
GTK_MENU_SHELL(functions_help_menu), functions_help_proview);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions_help), GTK_WIDGET(functions_help_menu));
gtk_menu_shell_append(GTK_MENU_SHELL(functions_help_menu),
functions_help_project);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_help_menu),
functions_help_overview);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_help_menu),
functions_help_opwin);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_help_menu),
functions_help_proview);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions_help),
GTK_WIDGET(functions_help_menu));
// End Help submenu
functions_close = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Close"));
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions_close),
functions_close =
gtk_image_menu_item_new_with_mnemonic(CoWowGtk::translate_utf8("_Close"));
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions_close),
gtk_image_new_from_stock("gtk-close", GTK_ICON_SIZE_MENU));
g_signal_connect(
functions_close, "activate", G_CALLBACK(activate_exit), this);
g_signal_connect(functions_close, "activate", G_CALLBACK(activate_exit),
this);
// gtk_widget_add_accelerator( functions_close, "activate", accel_g,
// 'w', GdkModifierType(GDK_CONTROL_MASK),
//GTK_ACCEL_VISIBLE);
// GTK_ACCEL_VISIBLE);
GtkMenu* functions_menu = (GtkMenu*)g_object_new(GTK_TYPE_MENU, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(functions_menu), functions_alarm);
......@@ -588,12 +587,12 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
GtkWidget* functions = gtk_image_menu_item_new_with_mnemonic(
CoWowGtk::translate_utf8("_Functions"));
dcli_translate_filename(fname, "$pwr_exe/xtt_down.png");
gtk_image_menu_item_set_image(
GTK_IMAGE_MENU_ITEM(functions), gtk_image_new_from_file(fname));
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(functions),
gtk_image_new_from_file(fname));
gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), functions);
gtk_menu_item_set_submenu(
GTK_MENU_ITEM(functions), GTK_WIDGET(functions_menu));
gtk_menu_item_set_submenu(GTK_MENU_ITEM(functions),
GTK_WIDGET(functions_menu));
// Toolbar
tools = (GtkWidget*)g_object_new(GTK_TYPE_TOOLBAR, NULL);
......@@ -601,90 +600,90 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
GtkWidget* tools_zoom_in = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_in.png");
gtk_container_add(
GTK_CONTAINER(tools_zoom_in), gtk_image_new_from_file(fname));
g_signal_connect(
tools_zoom_in, "clicked", G_CALLBACK(activate_zoom_in), this);
gtk_container_add(GTK_CONTAINER(tools_zoom_in),
gtk_image_new_from_file(fname));
g_signal_connect(tools_zoom_in, "clicked", G_CALLBACK(activate_zoom_in),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools), tools_zoom_in,
CoWowGtk::translate_utf8("Larger Text"), "");
CoWowGtk::translate_utf8("Larger Text"), "");
GtkWidget* tools_zoom_out = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_zoom_out.png");
gtk_container_add(
GTK_CONTAINER(tools_zoom_out), gtk_image_new_from_file(fname));
g_signal_connect(
tools_zoom_out, "clicked", G_CALLBACK(activate_zoom_out), this);
gtk_container_add(GTK_CONTAINER(tools_zoom_out),
gtk_image_new_from_file(fname));
g_signal_connect(tools_zoom_out, "clicked", G_CALLBACK(activate_zoom_out),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools), tools_zoom_out,
CoWowGtk::translate_utf8("Smaller Text"), "");
CoWowGtk::translate_utf8("Smaller Text"), "");
GtkWidget* tools_help = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_help.png");
gtk_container_add(GTK_CONTAINER(tools_help), gtk_image_new_from_file(fname));
g_signal_connect(tools_help, "clicked", G_CALLBACK(activate_help), this);
gtk_toolbar_append_widget(
GTK_TOOLBAR(tools), tools_help, CoWowGtk::translate_utf8("Help"), "");
gtk_toolbar_append_widget(GTK_TOOLBAR(tools), tools_help,
CoWowGtk::translate_utf8("Help"), "");
tools_close = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_close.png");
gtk_container_add(GTK_CONTAINER(tools_close), gtk_image_new_from_file(fname));
g_signal_connect(tools_close, "clicked", G_CALLBACK(activate_exit), this);
gtk_toolbar_append_widget(
GTK_TOOLBAR(tools), tools_close, CoWowGtk::translate_utf8("Close"), "");
gtk_toolbar_append_widget(GTK_TOOLBAR(tools), tools_close,
CoWowGtk::translate_utf8("Close"), "");
GtkWidget* tools_alarmlist = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_alarmlist.png");
gtk_container_add(
GTK_CONTAINER(tools_alarmlist), gtk_image_new_from_file(fname));
g_signal_connect(
tools_alarmlist, "clicked", G_CALLBACK(activate_alarmlist), this);
gtk_container_add(GTK_CONTAINER(tools_alarmlist),
gtk_image_new_from_file(fname));
g_signal_connect(tools_alarmlist, "clicked", G_CALLBACK(activate_alarmlist),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools2), tools_alarmlist,
CoWowGtk::translate_utf8("Alarm List"), "");
CoWowGtk::translate_utf8("Alarm List"), "");
GtkWidget* tools_eventlist = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_eventlist.png");
gtk_container_add(
GTK_CONTAINER(tools_eventlist), gtk_image_new_from_file(fname));
g_signal_connect(
tools_eventlist, "clicked", G_CALLBACK(activate_eventlist), this);
gtk_container_add(GTK_CONTAINER(tools_eventlist),
gtk_image_new_from_file(fname));
g_signal_connect(tools_eventlist, "clicked", G_CALLBACK(activate_eventlist),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools2), tools_eventlist,
CoWowGtk::translate_utf8("Event List"), "");
CoWowGtk::translate_utf8("Event List"), "");
GtkWidget* tools_eventlog = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_eventlog.png");
gtk_container_add(
GTK_CONTAINER(tools_eventlog), gtk_image_new_from_file(fname));
g_signal_connect(
tools_eventlog, "clicked", G_CALLBACK(activate_eventlog), this);
gtk_container_add(GTK_CONTAINER(tools_eventlog),
gtk_image_new_from_file(fname));
g_signal_connect(tools_eventlog, "clicked", G_CALLBACK(activate_eventlog),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools2), tools_eventlog,
CoWowGtk::translate_utf8("Event Log"), "");
CoWowGtk::translate_utf8("Event Log"), "");
GtkWidget* tools_blocklist = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_blocklist.png");
gtk_container_add(
GTK_CONTAINER(tools_blocklist), gtk_image_new_from_file(fname));
g_signal_connect(
tools_blocklist, "clicked", G_CALLBACK(activate_blocklist), this);
gtk_container_add(GTK_CONTAINER(tools_blocklist),
gtk_image_new_from_file(fname));
g_signal_connect(tools_blocklist, "clicked", G_CALLBACK(activate_blocklist),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools2), tools_blocklist,
CoWowGtk::translate_utf8("Blocked Alarms"), "");
CoWowGtk::translate_utf8("Blocked Alarms"), "");
GtkWidget* tools_navigator = gtk_button_new();
dcli_translate_filename(fname, "$pwr_exe/xtt_navigator.png");
gtk_container_add(
GTK_CONTAINER(tools_navigator), gtk_image_new_from_file(fname));
g_signal_connect(
tools_navigator, "clicked", G_CALLBACK(activate_navigator), this);
gtk_container_add(GTK_CONTAINER(tools_navigator),
gtk_image_new_from_file(fname));
g_signal_connect(tools_navigator, "clicked", G_CALLBACK(activate_navigator),
this);
gtk_toolbar_append_widget(GTK_TOOLBAR(tools2), tools_navigator,
CoWowGtk::translate_utf8("Navigator"), "");
CoWowGtk::translate_utf8("Navigator"), "");
// System pushbuttons
GtkWidget* sysbutton_box = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(
GTK_BOX(sysbutton_box), GTK_WIDGET(menu_bar), FALSE, FALSE, 0);
gtk_box_pack_start(
GTK_BOX(sysbutton_box), GTK_WIDGET(tools), FALSE, FALSE, 0);
gtk_box_pack_start(
GTK_BOX(sysbutton_box), GTK_WIDGET(tools2), FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(sysbutton_box), GTK_WIDGET(menu_bar), FALSE, FALSE,
0);
gtk_box_pack_start(GTK_BOX(sysbutton_box), GTK_WIDGET(tools), FALSE, FALSE,
0);
gtk_box_pack_start(GTK_BOX(sysbutton_box), GTK_WIDGET(tools2), FALSE, FALSE,
0);
gtk_widget_set_size_request(sysbutton_box, 160, -1);
sts = configure(opplace);
......@@ -693,7 +692,8 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
// Status bar
GtkWidget* status_bar = NULL;
if (!(layout_mask & pwr_mOpWindLayoutMask_HideStatusBar)) {
if (!(layout_mask & pwr_mOpWindLayoutMask_HideStatusBar))
{
char text[80];
pwr_tTime time;
......@@ -705,32 +705,38 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
title_label = gtk_label_new("");
status_bar = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(
GTK_BOX(status_bar), GTK_WIDGET(icon_image), FALSE, FALSE, 5);
gtk_box_pack_start(
GTK_BOX(status_bar), GTK_WIDGET(title_label), FALSE, FALSE, 20);
gtk_box_pack_start(GTK_BOX(status_bar), GTK_WIDGET(icon_image), FALSE,
FALSE, 5);
gtk_box_pack_start(GTK_BOX(status_bar), GTK_WIDGET(title_label), FALSE,
FALSE, 20);
// Add node supervision buttons
int padding1, padding2, buttonwidth;
if (sup_vect.size() > 10) {
if (sup_vect.size() > 10)
{
padding1 = 0;
padding2 = 0;
buttonwidth = (xtt_monitor_geometry.width - 350) / sup_vect.size();
} else if (sup_vect.size() > 6) {
buttonwidth = (monitor_geometry.width - 350) / sup_vect.size();
}
else if (sup_vect.size() > 6)
{
padding1 = 8;
padding2 = 5;
buttonwidth
= (xtt_monitor_geometry.width - 350) / sup_vect.size() - 2 * padding2;
} else {
buttonwidth =
(monitor_geometry.width - 350) / sup_vect.size() - 2 * padding2;
}
else
{
padding1 = 8;
padding2 = 5;
buttonwidth = 0;
}
for (unsigned int i = 0; i < sup_vect.size(); i++) {
for (unsigned int i = 0; i < sup_vect.size(); i++)
{
GtkWidget* node_label = gtk_label_new("");
snprintf(text, sizeof(text), "<span size=\"%d\">%s</span>", 11 * 1024,
sup_vect[i].node_name);
sup_vect[i].node_name);
gtk_label_set_markup(GTK_LABEL(node_label), CoWowGtk::convert_utf8(text));
GtkWidget* node_label_bg = gtk_event_box_new();
gtk_container_add(GTK_CONTAINER(node_label_bg), node_label);
......@@ -747,9 +753,9 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_fixed_put(GTK_FIXED(node_ind_frame_box), node_ind_frame, 0, 0);
gtk_fixed_put(GTK_FIXED(node_ind_frame_box), node_ind, 1, 1);
gtk_box_pack_start(GTK_BOX(node_hbox), GTK_WIDGET(node_ind_frame_box),
FALSE, FALSE, padding1);
gtk_box_pack_start(
GTK_BOX(node_hbox), GTK_WIDGET(node_label_bg), TRUE, TRUE, padding1);
FALSE, FALSE, padding1);
gtk_box_pack_start(GTK_BOX(node_hbox), GTK_WIDGET(node_label_bg), TRUE,
TRUE, padding1);
GtkWidget* node_image = gtk_vbox_new(FALSE, 0);
GtkWidget* node_ind_filler1 = gtk_event_box_new();
......@@ -760,12 +766,12 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_widget_modify_bg(GTK_WIDGET(node_ind), GTK_STATE_NORMAL, &gray_color);
gtk_widget_set_size_request(node_ind, 18, 18);
gtk_widget_modify_bg(
GTK_WIDGET(node_ind_frame), GTK_STATE_NORMAL, &black_color);
gtk_widget_modify_bg(
GTK_WIDGET(node_ind_frame), GTK_STATE_PRELIGHT, &black_color);
gtk_widget_modify_bg(
GTK_WIDGET(node_ind_frame), GTK_STATE_ACTIVE, &black_color);
gtk_widget_modify_bg(GTK_WIDGET(node_ind_frame), GTK_STATE_NORMAL,
&black_color);
gtk_widget_modify_bg(GTK_WIDGET(node_ind_frame), GTK_STATE_PRELIGHT,
&black_color);
gtk_widget_modify_bg(GTK_WIDGET(node_ind_frame), GTK_STATE_ACTIVE,
&black_color);
gtk_widget_set_size_request(node_ind_frame, 20, 20);
if (buttonwidth)
......@@ -779,13 +785,13 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
sup_vect[i].textbgw = (void*)node_label_bg;
sup_vect[i].buttonw = (void*)node_button;
g_signal_connect(node_button, "button_press_event",
G_CALLBACK(activate_sup_node), this);
G_CALLBACK(activate_sup_node), this);
g_object_set(node_button, "can-focus", FALSE, NULL);
gtk_box_pack_start(
GTK_BOX(status_bar), GTK_WIDGET(node_button), FALSE, FALSE, padding2);
gtk_box_pack_start(GTK_BOX(status_bar), GTK_WIDGET(node_button), FALSE,
FALSE, padding2);
}
if (buttonwidth)
gtk_widget_set_size_request(status_bar, xtt_monitor_geometry.width, -1);
gtk_widget_set_size_request(status_bar, monitor_geometry.width, -1);
}
// Main window
......@@ -800,10 +806,11 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_paned_pack2(GTK_PANED(pane), hbox_conf, FALSE, TRUE);
GtkWidget* vbox_conf = gtk_vbox_new(FALSE, 0);
if (!(layout_mask & pwr_mOpWindLayoutMask_HideStatusBar)) {
if (!(layout_mask & pwr_mOpWindLayoutMask_HideStatusBar))
{
gtk_box_pack_start(GTK_BOX(vbox_conf), status_bar, FALSE, FALSE, 0);
gtk_box_pack_start(
GTK_BOX(vbox_conf), gtk_hseparator_new(), FALSE, FALSE, 2);
gtk_box_pack_start(GTK_BOX(vbox_conf), gtk_hseparator_new(), FALSE, FALSE,
2);
}
gtk_box_pack_start(GTK_BOX(vbox_conf), pane, FALSE, FALSE, 0);
......@@ -817,7 +824,8 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
gtk_widget_show_all(toplevel);
if (start_jop) {
if (start_jop)
{
jop = new Jop((void*)this);
jop->command_cb = &jop_command_cb;
}
......@@ -829,23 +837,16 @@ OpGtk::OpGtk(void* op_parent_ctx, GtkWidget* op_parent_wid, char* opplace,
g_object_set(aalarm_box[3], "visible", FALSE, NULL);
g_object_set(aalarm_box[4], "visible", FALSE, NULL);
g_object_set(balarm_box, "visible", FALSE, NULL);
g_object_set(decr_button, "visible", FALSE, NULL);
if (layout_mask & pwr_mOpWindLayoutMask_HideCloseButton) {
g_object_set(decr_button, "visible", TRUE, NULL);
if (layout_mask & pwr_mOpWindLayoutMask_HideCloseButton)
{
g_object_set(tools_close, "visible", FALSE, NULL);
g_object_set(functions_close, "visible", FALSE, NULL);
}
if (a_height == 5)
activate_aalarm_decr(0, this);
if (a_height == 4) {
// g_object_set( decr_button, "visible", TRUE, NULL);
activate_aalarm_decr(0, this);
activate_aalarm_decr(0, this);
}
gtk_window_resize(
GTK_WINDOW(toplevel), xtt_monitor_geometry.width, OP_HEIGHT_MIN);
gtk_window_move(GTK_WINDOW(toplevel), 0, 0);
gtk_window_resize(GTK_WINDOW(toplevel), monitor_geometry.width,
OP_HEIGHT_MIN);
gtk_window_move(GTK_WINDOW(toplevel), monitor_geometry.x, 0);
wow = new CoWowGtk(toplevel);
sup_timerid = wow->timer_new();
......@@ -864,7 +865,8 @@ OpGtk::~OpGtk()
{
if (jop)
delete jop;
if (sup_timerid) {
if (sup_timerid)
{
sup_timerid->remove();
delete sup_timerid;
}
......@@ -889,8 +891,8 @@ void OpGtk::add_close_button()
g_object_set(functions_close, "visible", TRUE, NULL);
}
int OpGtk::create_menu_item(
const char* name, int pixmap, int append, const char* cmd)
int OpGtk::create_menu_item(const char* name, int pixmap, int append,
const char* cmd)
{
GtkWidget* w;
int sts;
......@@ -924,9 +926,11 @@ void OpGtk::update_alarm_info()
int show_time = 0;
time_eFormat time_format = time_eFormat_Time;
char* s;
int backward = layout_mask & pwr_mOpWindLayoutMask_ShowOldestNotAckedAlarm ? 1 : 0;
int backward =
layout_mask & pwr_mOpWindLayoutMask_ShowOldestNotAckedAlarm ? 1 : 0;
if (get_alarm_info_cb) {
if (get_alarm_info_cb)
{
sts = (get_alarm_info_cb)(parent_ctx, &info, backward, a_height);
if (EVEN(sts))
return;
......@@ -941,55 +945,71 @@ void OpGtk::update_alarm_info()
snprintf(str, sizeof(str), "%d", info.alarms_total);
gtk_label_set_text(GTK_LABEL(alarmcnt_label), str);
if (layout_mask & pwr_mOpWindLayoutMask_ShowAlarmDateAndTime) {
if (layout_mask & pwr_mOpWindLayoutMask_ShowAlarmDateAndTime)
{
time_format = time_eFormat_ComprDateAndTime;
show_time = 1;
} else if (layout_mask & pwr_mOpWindLayoutMask_ShowAlarmTime) {
}
else if (layout_mask & pwr_mOpWindLayoutMask_ShowAlarmTime)
{
time_format = time_eFormat_Time;
show_time = 1;
}
for (i = 0; i < 5; i++) {
for (i = 0; i < 5; i++)
{
a_exist[i] = info.a_alarm_exist[i];
a_active[i] = info.a_alarm_active[i];
strcpy(a_alarm_moretext[i], info.a_alarm_moretext[i]);
if (info.a_alarm_exist[i]) {
if (info.a_alarm_exist[i])
{
cnv_pango_text(info.a_alarm_text[i], ctext, sizeof(ctext));
if (show_time) {
sts = time_AtoAscii(
&info.a_alarm_time[i], time_format, timestr, sizeof(timestr));
if (show_time)
{
sts = time_AtoAscii(&info.a_alarm_time[i], time_format, timestr,
sizeof(timestr));
if ((s = strrchr(timestr, '.')))
*s = 0;
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s %s</span>",
fsize, timestr, info.a_alarm_alias[i], ctext);
} else
fsize, timestr, info.a_alarm_alias[i], ctext);
}
else
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s</span>", fsize,
info.a_alarm_alias[i], ctext);
info.a_alarm_alias[i], ctext);
gtk_label_set_markup(
GTK_LABEL(aalarm_label[i]), CoWowGtk::convert_utf8(text));
gtk_label_set_markup(GTK_LABEL(aalarm_label[i]),
CoWowGtk::convert_utf8(text));
snprintf(
text, sizeof(text), "<span size=\"%d\">%s</span>", fsize, timestr);
snprintf(text, sizeof(text), "<span size=\"%d\">%s</span>", fsize,
timestr);
// gtk_widget_modify_bg( aalarm_box[i], GTK_STATE_NORMAL, &red_color);
if (i < a_height) {
if (i < a_height)
{
g_object_set(aalarm_box[i], "visible", TRUE, NULL);
if (info.a_alarm_active[i]) {
if (info.a_alarm_active[i])
{
g_object_set(aalarm_active[i], "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(aalarm_active[i], "visible", FALSE, NULL);
}
if (!streq(info.a_alarm_moretext[i], "")) {
if (!streq(info.a_alarm_moretext[i], ""))
{
g_object_set(aalarm_info[i], "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(aalarm_info[i], "visible", FALSE, NULL);
}
}
} else {
}
else
{
gtk_label_set_text(GTK_LABEL(aalarm_label[i]), "");
// gtk_widget_modify_bg( aalarm_box[i], GTK_STATE_NORMAL, &bg_color);
g_object_set(aalarm_active[i], "visible", FALSE, NULL);
......@@ -997,43 +1017,54 @@ void OpGtk::update_alarm_info()
}
}
if (info.b_alarm_exist[0]) {
if (info.b_alarm_exist[0])
{
balarm_type = evlist_eEventType_Alarm;
balarm_prio = mh_eEventPrio_B;
strcpy(b_alarm_moretext, info.b_alarm_moretext[0]);
cnv_pango_text(info.b_alarm_text[0], ctext, sizeof(ctext));
if (show_time) {
sts = time_AtoAscii(
&info.b_alarm_time[0], time_format, timestr, sizeof(timestr));
if (show_time)
{
sts = time_AtoAscii(&info.b_alarm_time[0], time_format, timestr,
sizeof(timestr));
if ((s = strrchr(timestr, '.')))
*s = 0;
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s %s</span>",
fsize, timestr, info.b_alarm_alias[0], ctext);
} else
fsize, timestr, info.b_alarm_alias[0], ctext);
}
else
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s</span>", fsize,
info.b_alarm_alias[0], ctext);
info.b_alarm_alias[0], ctext);
gtk_label_set_markup(
GTK_LABEL(balarm_label), CoWowGtk::convert_utf8(text));
gtk_label_set_markup(GTK_LABEL(balarm_label),
CoWowGtk::convert_utf8(text));
gtk_widget_modify_bg(balarm_ebox, GTK_STATE_NORMAL, &yellow_color);
g_object_set(balarm_box, "visible", TRUE, NULL);
gtk_label_set_text(GTK_LABEL(balarm_mark), "B");
if (info.b_alarm_active[0]) {
if (info.b_alarm_active[0])
{
g_object_set(balarm_active, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_active, "visible", FALSE, NULL);
}
if (!streq(info.b_alarm_moretext[0], "")) {
if (!streq(info.b_alarm_moretext[0], ""))
{
g_object_set(balarm_info, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_info, "visible", FALSE, NULL);
}
} else if (info.c_alarm_exist[0]) {
}
else if (info.c_alarm_exist[0])
{
GdkColor blue_color;
gdk_color_parse("Lightblue", &blue_color);
......@@ -1041,35 +1072,45 @@ void OpGtk::update_alarm_info()
balarm_prio = mh_eEventPrio_C;
strcpy(b_alarm_moretext, info.c_alarm_moretext[0]);
cnv_pango_text(info.c_alarm_text[0], ctext, sizeof(ctext));
if (show_time) {
sts = time_AtoAscii(
&info.c_alarm_time[0], time_format, timestr, sizeof(timestr));
if (show_time)
{
sts = time_AtoAscii(&info.c_alarm_time[0], time_format, timestr,
sizeof(timestr));
if ((s = strrchr(timestr, '.')))
*s = 0;
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s %s</span>",
fsize, timestr, info.c_alarm_alias[i], ctext);
} else
fsize, timestr, info.c_alarm_alias[i], ctext);
}
else
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s</span>", fsize,
info.c_alarm_alias[0], ctext);
gtk_label_set_markup(
GTK_LABEL(balarm_label), CoWowGtk::convert_utf8(text));
info.c_alarm_alias[0], ctext);
gtk_label_set_markup(GTK_LABEL(balarm_label),
CoWowGtk::convert_utf8(text));
gtk_widget_modify_bg(balarm_ebox, GTK_STATE_NORMAL, &blue_color);
g_object_set(balarm_box, "visible", TRUE, NULL);
gtk_label_set_text(GTK_LABEL(balarm_mark), "C");
if (info.c_alarm_active[0]) {
if (info.c_alarm_active[0])
{
g_object_set(balarm_active, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_active, "visible", FALSE, NULL);
}
if (!streq(info.c_alarm_moretext[0], "")) {
if (!streq(info.c_alarm_moretext[0], ""))
{
g_object_set(balarm_info, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_info, "visible", FALSE, NULL);
}
} else if (info.d_alarm_exist[0]) {
}
else if (info.d_alarm_exist[0])
{
GdkColor violet_color;
gdk_color_parse("Violet", &violet_color);
......@@ -1077,51 +1118,63 @@ void OpGtk::update_alarm_info()
balarm_prio = mh_eEventPrio_D;
strcpy(b_alarm_moretext, info.d_alarm_moretext[0]);
cnv_pango_text(info.d_alarm_text[0], ctext, sizeof(ctext));
if (show_time) {
sts = time_AtoAscii(
&info.d_alarm_time[0], time_format, timestr, sizeof(timestr));
if (show_time)
{
sts = time_AtoAscii(&info.d_alarm_time[0], time_format, timestr,
sizeof(timestr));
if ((s = strrchr(timestr, '.')))
*s = 0;
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s %s</span>",
fsize, timestr, info.d_alarm_alias[0], ctext);
} else
fsize, timestr, info.d_alarm_alias[0], ctext);
}
else
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s</span>", fsize,
info.d_alarm_alias[0], ctext);
gtk_label_set_markup(
GTK_LABEL(balarm_label), CoWowGtk::convert_utf8(text));
info.d_alarm_alias[0], ctext);
gtk_label_set_markup(GTK_LABEL(balarm_label),
CoWowGtk::convert_utf8(text));
gtk_widget_modify_bg(balarm_ebox, GTK_STATE_NORMAL, &violet_color);
g_object_set(balarm_box, "visible", TRUE, NULL);
gtk_label_set_text(GTK_LABEL(balarm_mark), "D");
if (info.b_alarm_active[0]) {
if (info.b_alarm_active[0])
{
g_object_set(balarm_active, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_active, "visible", FALSE, NULL);
}
if (!streq(info.d_alarm_moretext[0], "")) {
if (!streq(info.d_alarm_moretext[0], ""))
{
g_object_set(balarm_info, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_info, "visible", FALSE, NULL);
}
} else if (info.i_alarm_exist[0]) {
}
else if (info.i_alarm_exist[0])
{
balarm_type = info.i_alarm_eventtype[0];
strcpy(b_alarm_moretext, info.i_alarm_moretext[0]);
cnv_pango_text(info.i_alarm_text[0], ctext, sizeof(ctext));
if (show_time) {
sts = time_AtoAscii(
&info.i_alarm_time[0], time_format, timestr, sizeof(timestr));
if (show_time)
{
sts = time_AtoAscii(&info.i_alarm_time[0], time_format, timestr,
sizeof(timestr));
if ((s = strrchr(timestr, '.')))
*s = 0;
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s %s</span>",
fsize, timestr, info.i_alarm_alias[0], ctext);
} else
fsize, timestr, info.i_alarm_alias[0], ctext);
}
else
snprintf(text, sizeof(text), "<span size=\"%d\">%s %s</span>", fsize,
info.i_alarm_alias[0], ctext);
gtk_label_set_markup(
GTK_LABEL(balarm_label), CoWowGtk::convert_utf8(text));
info.i_alarm_alias[0], ctext);
gtk_label_set_markup(GTK_LABEL(balarm_label),
CoWowGtk::convert_utf8(text));
if (balarm_type == evlist_eEventType_InfoSuccess)
gtk_widget_modify_bg(balarm_ebox, GTK_STATE_NORMAL, &green_color);
else
......@@ -1130,17 +1183,25 @@ void OpGtk::update_alarm_info()
gtk_label_set_text(GTK_LABEL(balarm_mark), "I");
if (info.i_alarm_active[0]) {
if (info.i_alarm_active[0])
{
g_object_set(balarm_active, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_active, "visible", FALSE, NULL);
}
if (!streq(info.i_alarm_moretext[0], "")) {
if (!streq(info.i_alarm_moretext[0], ""))
{
g_object_set(balarm_info, "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(balarm_info, "visible", FALSE, NULL);
}
} else {
}
else
{
gtk_label_set_text(GTK_LABEL(balarm_label), "");
gtk_widget_modify_bg(balarm_ebox, GTK_STATE_NORMAL, &bg_color);
gtk_label_set_text(GTK_LABEL(balarm_mark), "");
......@@ -1173,10 +1234,22 @@ int OpGtk::configure(char* opplace_str)
if (opplace_p->StartJavaProcess)
start_jop = 1;
GdkScreen* xtt_screen = gtk_widget_get_screen(toplevel);
int numberOfMonitors = gdk_screen_get_n_monitors(xtt_screen);
int monitor = opplace_p->Monitor;
if (monitor > numberOfMonitors || monitor < 0) monitor = 0;
if (monitor == 0) monitor = gdk_screen_get_primary_monitor(xtt_screen);
else monitor = opplace_p->Monitor - 1;
gdk_screen_get_monitor_geometry(xtt_screen, monitor,
&monitor_geometry);
// Examine Graph objects
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
i++) {
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]); i++)
{
button_aref[i].Objid = pwr_cNOid;
if (cdh_ObjidIsNull(opplace_p->FastAvail[i].Objid))
continue;
......@@ -1186,34 +1259,35 @@ int OpGtk::configure(char* opplace_str)
continue;
memset(&attrref, 0, sizeof(attrref));
switch (tid) {
switch (tid)
{
case pwr_cClass_XttGraph:
sts = gdh_ClassAttrToAttrref(
pwr_cClass_XttGraph, ".ButtonText", &attrref);
sts =
gdh_ClassAttrToAttrref(pwr_cClass_XttGraph, ".ButtonText", &attrref);
if (EVEN(sts))
return sts;
break;
case pwr_cClass_XttMultiView:
sts = gdh_ClassAttrToAttrref(
pwr_cClass_XttMultiView, ".ButtonText", &attrref);
sts = gdh_ClassAttrToAttrref(pwr_cClass_XttMultiView, ".ButtonText",
&attrref);
if (EVEN(sts))
return sts;
break;
case pwr_cClass_XttCamera:
sts = gdh_ClassAttrToAttrref(
pwr_cClass_XttCamera, ".ButtonText", &attrref);
sts =
gdh_ClassAttrToAttrref(pwr_cClass_XttCamera, ".ButtonText", &attrref);
if (EVEN(sts))
return sts;
break;
case pwr_cClass_SevPlotGroup:
sts = gdh_ClassAttrToAttrref(
pwr_cClass_SevPlotGroup, ".ButtonText", &attrref);
sts = gdh_ClassAttrToAttrref(pwr_cClass_SevPlotGroup, ".ButtonText",
&attrref);
if (EVEN(sts))
return sts;
break;
case pwr_cClass_PlotGroup:
sts = gdh_ClassAttrToAttrref(
pwr_cClass_PlotGroup, ".ButtonText", &attrref);
sts =
gdh_ClassAttrToAttrref(pwr_cClass_PlotGroup, ".ButtonText", &attrref);
if (EVEN(sts))
return sts;
break;
......@@ -1222,15 +1296,16 @@ int OpGtk::configure(char* opplace_str)
}
attrref = cdh_ArefAdd(&opplace_p->FastAvail[i], &attrref);
sts = gdh_GetObjectInfoAttrref(
&attrref, (void*)button_title[i], sizeof(button_title[0]));
sts = gdh_GetObjectInfoAttrref(&attrref, (void*)button_title[i],
sizeof(button_title[0]));
if (EVEN(sts))
continue;
if (streq(button_title[i], "")) {
if (streq(button_title[i], ""))
{
// Take object name instead
sts = gdh_AttrrefToName(&opplace_p->FastAvail[i], button_title[i],
sizeof(button_title[0]), cdh_mName_object);
sizeof(button_title[0]), cdh_mName_object);
if (EVEN(sts))
continue;
}
......@@ -1240,13 +1315,13 @@ int OpGtk::configure(char* opplace_str)
// Create the application buttons
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
i++) {
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]); i++)
{
if (cdh_ObjidIsNull(button_aref[i].Objid))
continue;
char* textutf8 = g_convert(
button_title[i], -1, "UTF-8", "ISO8859-1", NULL, NULL, NULL);
char* textutf8 =
g_convert(button_title[i], -1, "UTF-8", "ISO8859-1", NULL, NULL, NULL);
// appl_buttons[i] = gtk_button_new_with_label(textutf8);
appl_buttons[i] = gtk_event_box_new();
gtk_container_set_border_width(GTK_CONTAINER(appl_buttons[i]), 2);
......@@ -1254,150 +1329,140 @@ int OpGtk::configure(char* opplace_str)
g_free(textutf8);
gtk_container_add(GTK_CONTAINER(appl_buttons[i]), label);
gtk_widget_set_size_request(appl_buttons[i], -1, 28);
switch (i) {
switch (i)
{
case 0:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl1), this);
G_CALLBACK(activate_appl1), this);
break;
case 1:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl2), this);
G_CALLBACK(activate_appl2), this);
break;
case 2:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl3), this);
G_CALLBACK(activate_appl3), this);
break;
case 3:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl4), this);
G_CALLBACK(activate_appl4), this);
break;
case 4:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl5), this);
G_CALLBACK(activate_appl5), this);
break;
case 5:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl6), this);
G_CALLBACK(activate_appl6), this);
break;
case 6:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl7), this);
G_CALLBACK(activate_appl7), this);
break;
case 7:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl8), this);
G_CALLBACK(activate_appl8), this);
break;
case 8:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl9), this);
G_CALLBACK(activate_appl9), this);
break;
case 9:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl10), this);
G_CALLBACK(activate_appl10), this);
break;
case 10:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl11), this);
G_CALLBACK(activate_appl11), this);
break;
case 11:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl12), this);
G_CALLBACK(activate_appl12), this);
break;
case 12:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl13), this);
G_CALLBACK(activate_appl13), this);
break;
case 13:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl14), this);
G_CALLBACK(activate_appl14), this);
break;
case 14:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl15), this);
G_CALLBACK(activate_appl15), this);
break;
case 15:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl16), this);
G_CALLBACK(activate_appl16), this);
break;
case 16:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl17), this);
G_CALLBACK(activate_appl17), this);
break;
case 17:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl18), this);
G_CALLBACK(activate_appl18), this);
break;
case 18:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl19), this);
G_CALLBACK(activate_appl19), this);
break;
case 19:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl20), this);
G_CALLBACK(activate_appl20), this);
break;
case 20:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl21), this);
G_CALLBACK(activate_appl21), this);
break;
case 21:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl22), this);
G_CALLBACK(activate_appl22), this);
break;
case 22:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl23), this);
G_CALLBACK(activate_appl23), this);
break;
case 23:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl24), this);
G_CALLBACK(activate_appl24), this);
break;
case 24:
g_signal_connect(appl_buttons[i], "button_press_event",
G_CALLBACK(activate_appl25), this);
G_CALLBACK(activate_appl25), this);
break;
}
}
int showRow[5] = {1, 1, 1, 0, 0};
appl_form = gtk_vbox_new(FALSE, 0);
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
i++) {
if (i == 0) {
funcbox[0] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[0], FALSE, FALSE, 0);
} else if (i == 4) {
funcbox[1] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[1], FALSE, FALSE, 0);
} else if (i == 9) {
funcbox[2] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[2], FALSE, FALSE, 0);
} else if (i == 14) {
funcbox[3] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[3], FALSE, FALSE, 0);
} else if (i == 19) {
funcbox[4] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[4], FALSE, FALSE, 0);
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]); i++)
{
// Create new box every 5th row
if (i % 5 == 0)
{
funcbox[i / 5] = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(appl_form), funcbox[i / 5], FALSE, FALSE, 0);
}
if (i < 5) {
if (cdh_ObjidIsNotNull(button_aref[i].Objid))
gtk_box_pack_start(GTK_BOX(funcbox[0]), appl_buttons[i], TRUE, TRUE, 0);
} else if (i < 10) {
if (cdh_ObjidIsNotNull(button_aref[i].Objid))
gtk_box_pack_start(GTK_BOX(funcbox[1]), appl_buttons[i], TRUE, TRUE, 0);
} else if (i < 15) {
if (cdh_ObjidIsNotNull(button_aref[i].Objid))
gtk_box_pack_start(GTK_BOX(funcbox[2]), appl_buttons[i], TRUE, TRUE, 0);
} else if (i < 20) {
if (cdh_ObjidIsNotNull(button_aref[i].Objid)) {
gtk_box_pack_start(GTK_BOX(funcbox[3]), appl_buttons[i], TRUE, TRUE, 0);
a_height = 4;
}
} else if (i < 25) {
if (cdh_ObjidIsNotNull(button_aref[i].Objid)) {
gtk_box_pack_start(GTK_BOX(funcbox[4]), appl_buttons[i], TRUE, TRUE, 0);
a_height = 5;
}
// Pack everything and set showRow accordingly
if (cdh_ObjidIsNotNull(button_aref[i].Objid))
{
gtk_box_pack_start(GTK_BOX(funcbox[i / 5]), appl_buttons[i], TRUE, TRUE,
0);
showRow[i / 5] = 1;
}
}
// Start checking at the last row
for (int row = (sizeof(showRow) / sizeof(showRow[0])) - 1; row >= 0; row--)
{
if (showRow[row])
{
for (int height = a_height - 1; height > row; height--)
activate_aalarm_decr(0, this);
break;
}
}
......@@ -1453,7 +1518,8 @@ void OpGtk::activate_colortheme(GtkWidget* w, gpointer data)
{
OpGtk* op = (OpGtk*)data;
if (op->command_cb) {
if (op->command_cb)
{
op->command_cb(op->parent_ctx, (char*)"open colorthemeselector");
}
}
......@@ -1469,24 +1535,35 @@ void OpGtk::activate_aalarm_incr(GtkWidget* w, gpointer data)
return;
op->a_height++;
height = OP_HEIGHT_MIN + (op->a_height - 2) * OP_HEIGHT_INC
+ ((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1)
* OP_HEIGHT_STATUSBAR;
height = OP_HEIGHT_MIN + (op->a_height - 2) * OP_HEIGHT_INC +
((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1) *
OP_HEIGHT_STATUSBAR;
if (op->a_height == 3) {
if (op->a_height == 3)
{
g_object_set(op->decr_button, "visible", TRUE, NULL);
} else if (op->a_height == 4) {
}
else if (op->a_height == 4)
{
g_object_set(op->funcbox[3], "visible", TRUE, NULL);
} else if (op->a_height == 5) {
}
else if (op->a_height == 5)
{
g_object_set(op->funcbox[4], "visible", TRUE, NULL);
}
for (int i = 2; i < 5; i++) {
if (i < op->a_height) {
if (op->a_exist[i]) {
for (int i = 2; i < 5; i++)
{
if (i < op->a_height)
{
if (op->a_exist[i])
{
g_object_set(op->aalarm_box[i], "visible", TRUE, NULL);
if (op->a_active[i]) {
if (op->a_active[i])
{
g_object_set(op->aalarm_active[i], "visible", TRUE, NULL);
} else {
}
else
{
g_object_set(op->aalarm_active[i], "visible", FALSE, NULL);
}
}
......@@ -1506,20 +1583,28 @@ void OpGtk::activate_aalarm_decr(GtkWidget* w, gpointer data)
return;
op->a_height--;
height = OP_HEIGHT_MIN + (op->a_height - 2) * OP_HEIGHT_INC
+ ((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1)
* OP_HEIGHT_STATUSBAR;
height = OP_HEIGHT_MIN + (op->a_height - 2) * OP_HEIGHT_INC +
((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1) *
OP_HEIGHT_STATUSBAR;
if (op->a_height == 2) {
if (op->a_height == 2)
{
g_object_set(op->decr_button, "visible", FALSE, NULL);
} else if (op->a_height == 3) {
}
else if (op->a_height == 3)
{
g_object_set(op->funcbox[3], "visible", FALSE, NULL);
} else if (op->a_height == 4) {
}
else if (op->a_height == 4)
{
g_object_set(op->funcbox[4], "visible", FALSE, NULL);
}
for (int i = 2; i < 5; i++) {
if (i >= op->a_height) {
if (op->a_exist[i]) {
for (int i = 2; i < 5; i++)
{
if (i >= op->a_height)
{
if (op->a_exist[i])
{
g_object_set(op->aalarm_box[i], "visible", FALSE, NULL);
g_object_set(op->aalarm_active[i], "visible", FALSE, NULL);
g_object_set(op->aalarm_info[i], "visible", FALSE, NULL);
......@@ -1648,7 +1733,8 @@ void OpGtk::activate_cmd_menu_item(GtkWidget* w, gpointer data)
int sts;
sts = ((OpGtk*)op)->get_cmd(w, cmd);
if (ODD(sts)) {
if (ODD(sts))
{
op->activate_cmd_menu_item(cmd);
}
}
......@@ -1860,8 +1946,10 @@ void OpGtk::activate_info(GtkWidget* w, gpointer data)
int OpGtk::get_cmd(GtkWidget* w, char* cmd)
{
for (unsigned int i = 0; i < cmd_vect.size(); i++) {
if (w == cmd_vect[i].w) {
for (unsigned int i = 0; i < cmd_vect.size(); i++)
{
if (w == cmd_vect[i].w)
{
strcpy(cmd, cmd_vect[i].cmd);
return 1;
}
......@@ -1873,7 +1961,8 @@ void OpGtk::change_sup_color(void* imagew, op_eSupColor color)
{
GdkColor* col;
switch (color) {
switch (color)
{
case op_eSupColor_Gray:
col = &gray_color;
break;
......@@ -1940,129 +2029,155 @@ void OpGtk::set_color_theme(int idx)
GdkColor menu_text;
red_color.pixel = 0;
red_color.red = 0xFFFF
* colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3];
red_color.green = 0xFFFF
* colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3
+ 1];
red_color.blue = 0xFFFF
* colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3
+ 2];
red_color.red =
0xFFFF *
colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3];
red_color.green =
0xFFFF *
colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3 +
1];
red_color.blue =
0xFFFF *
colors[(glow_eCtColor_RedIndicator - glow_eDrawType_CustomColor1) * 3 +
2];
green_color.pixel = 0;
green_color.red = 0xFFFF
* colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1)
* 3];
green_color.green = 0xFFFF
* colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1) * 3
+ 1];
green_color.blue = 0xFFFF
* colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1) * 3
+ 2];
green_color.red =
0xFFFF *
colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1) * 3];
green_color.green =
0xFFFF *
colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1) * 3 +
1];
green_color.blue =
0xFFFF *
colors[(glow_eCtColor_GreenIndicator - glow_eDrawType_CustomColor1) * 3 +
2];
yellow_color.pixel = 0;
yellow_color.red = 0xFFFF
* colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1)
* 3];
yellow_color.green = 0xFFFF
* colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1) * 3
+ 1];
yellow_color.blue = 0xFFFF
* colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1) * 3
+ 2];
yellow_color.red =
0xFFFF *
colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1) * 3];
yellow_color.green =
0xFFFF *
colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1) * 3 +
1];
yellow_color.blue =
0xFFFF *
colors[(glow_eCtColor_YellowIndicator - glow_eDrawType_CustomColor1) * 3 +
2];
gray_color.pixel = 0;
gray_color.red = 0xFFFF
* colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1)
* 3];
gray_color.green = 0xFFFF
* colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1)
* 3
+ 1];
gray_color.blue = 0xFFFF
* colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1)
* 3
+ 2];
gray_color.red =
0xFFFF *
colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1) *
3];
gray_color.green =
0xFFFF *
colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1) *
3 +
1];
gray_color.blue =
0xFFFF *
colors[(glow_eCtColor_IndicatorLowColor - glow_eDrawType_CustomColor1) *
3 +
2];
bg.pixel = 0;
bg.red = 0xFFFF
* colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3];
bg.green = 0xFFFF
* colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3
+ 1];
bg.blue = 0xFFFF
* colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3
+ 2];
bg.red = 0xFFFF *
colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3];
bg.green =
0xFFFF *
colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3 + 1];
bg.blue =
0xFFFF *
colors[(glow_eCtColor_Background - glow_eDrawType_CustomColor1) * 3 + 2];
bg_text.pixel = 0;
bg_text.red = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines
- glow_eDrawType_CustomColor1)
* 3];
bg_text.green = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines
- glow_eDrawType_CustomColor1)
* 3
+ 1];
bg_text.blue = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines
- glow_eDrawType_CustomColor1)
* 3
+ 2];
bg_text.red = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines -
glow_eDrawType_CustomColor1) *
3];
bg_text.green = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines -
glow_eDrawType_CustomColor1) *
3 +
1];
bg_text.blue = 0xFFFF * colors[(glow_eCtColor_BackgroundTextAndLines -
glow_eDrawType_CustomColor1) *
3 +
2];
button_bg.pixel = 0;
button_bg.red = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1)
* 3];
button_bg.green = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1) * 3
+ 1];
button_bg.blue = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1) * 3
+ 2];
button_bg.red =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1) * 3];
button_bg.green =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1) * 3 +
1];
button_bg.blue =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1) * 3 +
2];
button_text.pixel = 0;
button_text.red = 0xFFFF
* colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1)
* 3];
button_text.green = 0xFFFF
* colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1) * 3
+ 1];
button_text.blue = 0xFFFF
* colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1) * 3
+ 2];
button_text.red =
0xFFFF *
colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1) * 3];
button_text.green =
0xFFFF *
colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1) * 3 +
1];
button_text.blue =
0xFFFF *
colors[(glow_eCtColor_ButtonTextcolor - glow_eDrawType_CustomColor1) * 3 +
2];
button_prelight.pixel = 0;
button_prelight.red = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3)
* 3];
button_prelight.green = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3)
* 3
+ 1];
button_prelight.blue = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3)
* 3
+ 2];
button_prelight.red =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3) *
3];
button_prelight.green =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3) *
3 +
1];
button_prelight.blue =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 3) *
3 +
2];
button_active.pixel = 0;
button_active.red = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2)
* 3];
button_active.green = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2)
* 3
+ 1];
button_active.blue = 0xFFFF
* colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2)
* 3
+ 2];
button_active.red =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2) *
3];
button_active.green =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2) *
3 +
1];
button_active.blue =
0xFFFF *
colors[(glow_eCtColor_ButtonFillcolor - glow_eDrawType_CustomColor1 + 2) *
3 +
2];
menu.pixel = 0;
menu.red = 0xFFFF
* colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3];
menu.green = 0xFFFF
* colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3
+ 1];
menu.blue = 0xFFFF
* colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3
+ 2];
menu.red =
0xFFFF *
colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3];
menu.green =
0xFFFF *
colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3 +
1];
menu.blue =
0xFFFF *
colors[(glow_eCtColor_MenuFillcolor - glow_eDrawType_CustomColor1) * 3 +
2];
menu_text.pixel = 0;
menu_text.red = 0xFFFF
* colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3];
menu_text.green = 0xFFFF
* colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3
+ 1];
menu_text.blue = 0xFFFF
* colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3
+ 2];
menu_text.red =
0xFFFF *
colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3];
menu_text.green =
0xFFFF *
colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3 +
1];
menu_text.blue =
0xFFFF *
colors[(glow_eCtColor_MenuTextcolor - glow_eDrawType_CustomColor1) * 3 +
2];
gtk_widget_modify_bg(toplevel, GTK_STATE_NORMAL, &bg);
gtk_widget_modify_fg(GTK_WIDGET(title_label), GTK_STATE_NORMAL, &bg_text);
......@@ -2078,72 +2193,76 @@ void OpGtk::set_color_theme(int idx)
gtk_widget_modify_fg(GTK_WIDGET(balarm_mark), GTK_STATE_NORMAL, &bg_text);
gtk_widget_modify_bg(GTK_WIDGET(balarm_active_box), GTK_STATE_NORMAL, &bg);
for (int i = 0; i < 5; i++)
gtk_widget_modify_bg(
GTK_WIDGET(aalarm_active_box[i]), GTK_STATE_NORMAL, &bg);
gtk_widget_modify_bg(GTK_WIDGET(aalarm_active_box[i]), GTK_STATE_NORMAL,
&bg);
gtk_widget_modify_bg(GTK_WIDGET(menu_bar), GTK_STATE_NORMAL, &menu);
gtk_widget_modify_bg(GTK_WIDGET(menu_bar), GTK_STATE_ACTIVE, &menu);
GList* children = gtk_container_get_children(GTK_CONTAINER(menu_bar));
GList* child;
for (child = g_list_first(children); child; child = g_list_next(child)) {
for (child = g_list_first(children); child; child = g_list_next(child))
{
gtk_widget_modify_bg(GTK_WIDGET(child->data), GTK_STATE_NORMAL, &menu);
gtk_widget_modify_fg(GTK_WIDGET(child->data), GTK_STATE_NORMAL, &menu_text);
GList* children2 = gtk_container_get_children(GTK_CONTAINER(child->data));
GList* child2;
for (child2 = g_list_first(children2); child2;
child2 = g_list_next(child2)) {
for (child2 = g_list_first(children2); child2; child2 = g_list_next(child2))
{
gtk_widget_modify_bg(GTK_WIDGET(child2->data), GTK_STATE_NORMAL, &menu);
gtk_widget_modify_fg(
GTK_WIDGET(child2->data), GTK_STATE_NORMAL, &menu_text);
gtk_widget_modify_fg(GTK_WIDGET(child2->data), GTK_STATE_NORMAL,
&menu_text);
}
g_list_free(children2);
}
g_list_free(children);
for (unsigned int i = 0; i < sup_vect.size(); i++) {
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_NORMAL, &button_bg);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_ACTIVE, &button_active);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].indfiller1w), GTK_STATE_NORMAL, &button_bg);
for (unsigned int i = 0; i < sup_vect.size(); i++)
{
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_NORMAL,
&button_bg);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_PRELIGHT,
&button_prelight);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].buttonw), GTK_STATE_ACTIVE,
&button_active);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller1w), GTK_STATE_NORMAL,
&button_bg);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller1w),
GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].indfiller1w), GTK_STATE_ACTIVE, &button_active);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].indfiller2w), GTK_STATE_NORMAL, &button_bg);
GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller1w), GTK_STATE_ACTIVE,
&button_active);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller2w), GTK_STATE_NORMAL,
&button_bg);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller2w),
GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].indfiller2w), GTK_STATE_ACTIVE, &button_active);
gtk_widget_modify_fg(
GTK_WIDGET(sup_vect[i].textw), GTK_STATE_NORMAL, &button_text);
gtk_widget_modify_fg(
GTK_WIDGET(sup_vect[i].textw), GTK_STATE_PRELIGHT, &button_text);
gtk_widget_modify_fg(
GTK_WIDGET(sup_vect[i].textw), GTK_STATE_ACTIVE, &button_text);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_NORMAL, &button_bg);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(
GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_ACTIVE, &button_active);
GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].indfiller2w), GTK_STATE_ACTIVE,
&button_active);
gtk_widget_modify_fg(GTK_WIDGET(sup_vect[i].textw), GTK_STATE_NORMAL,
&button_text);
gtk_widget_modify_fg(GTK_WIDGET(sup_vect[i].textw), GTK_STATE_PRELIGHT,
&button_text);
gtk_widget_modify_fg(GTK_WIDGET(sup_vect[i].textw), GTK_STATE_ACTIVE,
&button_text);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_NORMAL,
&button_bg);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_PRELIGHT,
&button_prelight);
gtk_widget_modify_bg(GTK_WIDGET(sup_vect[i].textbgw), GTK_STATE_ACTIVE,
&button_active);
sup_vect[i].old_color = op_eSupColor_;
}
for (unsigned int i = 0; i < 25; i++) {
if (appl_buttons[i]) {
gtk_widget_modify_bg(
GTK_WIDGET(appl_buttons[i]), GTK_STATE_NORMAL, &button_bg);
gtk_widget_modify_bg(
GTK_WIDGET(appl_buttons[i]), GTK_STATE_PRELIGHT, &button_prelight);
gtk_widget_modify_bg(
GTK_WIDGET(appl_buttons[i]), GTK_STATE_ACTIVE, &button_active);
for (unsigned int i = 0; i < 25; i++)
{
if (appl_buttons[i])
{
gtk_widget_modify_bg(GTK_WIDGET(appl_buttons[i]), GTK_STATE_NORMAL,
&button_bg);
gtk_widget_modify_bg(GTK_WIDGET(appl_buttons[i]), GTK_STATE_PRELIGHT,
&button_prelight);
gtk_widget_modify_bg(GTK_WIDGET(appl_buttons[i]), GTK_STATE_ACTIVE,
&button_active);
gtk_widget_modify_fg(
GTK_WIDGET(gtk_bin_get_child(GTK_BIN(appl_buttons[i]))),
GTK_STATE_NORMAL, &button_text);
......@@ -2165,12 +2284,14 @@ void OpGtk::set_text_size()
char str[80];
char bold_str[10] = "";
sprintf(
str, "%s %s%f", "Lucida Sans", bold_str, FONT_SCALE * (text_size + 2));
sprintf(str, "%s %s%f", "Lucida Sans", bold_str,
FONT_SCALE * (text_size + 2));
fd = pango_font_description_from_string(str);
for (unsigned int i = 0; i < 25; i++) {
if (appl_buttons[i]) {
for (unsigned int i = 0; i < 25; i++)
{
if (appl_buttons[i])
{
gtk_widget_modify_font(
GTK_WIDGET(gtk_bin_get_child(GTK_BIN(appl_buttons[i]))), fd);
}
......
......@@ -93,6 +93,7 @@ public:
GdkColor green_color;
GdkColor gray_color;
GdkColor white_color;
GdkRectangle monitor_geometry;
int a_height;
int a_exist[5];
int a_active[5];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment