Skip to content
Snippets Groups Projects
Commit dc71c058 authored by deuce's avatar deuce
Browse files

Update got GTK3

Make sure the chat window is in the same place as the waiting window
Fix chat window not in taskbar issue
parent 0e580b53
Branches
Tags
No related merge requests found
......@@ -22,11 +22,10 @@ endif
vpath %.c ..
CFLAGS += -I.. -I../../comio $(SMBLIB_CFLAGS) $(HASH_CFLAGS) $(ENCODE_CFLAGS) $(XPDEV-MT_CFLAGS) $(JS_CFLAGS) $(CRYPT_CFLAGS) `pkg-config gtk+-2.0 --cflags`
CFLAGS += -I.. -I../../comio $(SMBLIB_CFLAGS) $(HASH_CFLAGS) $(ENCODE_CFLAGS) $(XPDEV-MT_CFLAGS) $(JS_CFLAGS) $(CRYPT_CFLAGS) `pkg-config gtk+-3.0 --cflags`
LDFLAGS += $(SMBLIB_LDFLAGS) $(ENCODE_LDFLAGS) $(HASH_LDFLAGS) $(XPDEV-MT_LDFLAGS) $(MT_LDFLAGS)
EXTRA_LIBS += `pkg-config gtk+-2.0 --libs`
EXTRA_LIBS += `pkg-config gtk+-3.0 --libs`
$(GTKCHAT): $(OBJS)
@echo Linking $@
$(QUIET)$(CC) $(LDFLAGS) $(OBJS) -o $@ $(EXTRA_LIBS) $(SMBLIB_LIBS) $(ENCODE_LIBS) $(HASH_LIBS) $(XPDEV-MT_LIBS)
$(QUIET)cd $(EXEODIR) && ln -fs ../gtk-chat.glade .
......@@ -65,6 +65,7 @@ gint
connect_wait(gpointer data)
{
GtkWidget *MainWindow;
gint x, y;
switch(chat_check_remote()) {
case -1: /* Error */
......@@ -74,8 +75,10 @@ connect_wait(gpointer data)
case 1: /* Waiting for remote */
return(TRUE);
case 2: /* Chat active */
MainWindow = create_MainWindow ();
gtk_window_get_position(data, &x, &y);
gtk_widget_hide (GTK_WIDGET(data));
MainWindow = create_MainWindow ();
gtk_window_move(GTK_WINDOW(MainWindow), x, y);
gtk_widget_show (MainWindow);
return(FALSE);
}
......@@ -84,7 +87,7 @@ connect_wait(gpointer data)
void
on_MainWindow_destroy (GtkObject *object,
on_MainWindow_destroy (GObject *object,
gpointer user_data)
{
chat_close();
......@@ -102,7 +105,7 @@ on_LocalText_key_press_event (GtkWidget *widget,
gsize inbytes;
gsize outbytes;
if(event->keyval==GDK_BackSpace || event->keyval==GDK_Delete) {
if(event->keyval==GDK_KEY_BackSpace || event->keyval==GDK_KEY_Delete) {
GtkTextIter start;
GtkTextIter end;
......@@ -134,7 +137,7 @@ on_LocalText_key_press_event (GtkWidget *widget,
);
g_free(outstr);
}
if(event->keyval == GDK_Return || event->keyval == GDK_KP_Enter) {
if(event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter) {
instr[1]=0;
instr[0]='\n';
chat_write_byte('\r');
......
......@@ -2,7 +2,7 @@
void
on_MainWindow_destroy (GtkObject *object,
on_MainWindow_destroy (GObject *object,
gpointer user_data);
gboolean
......
......@@ -172,9 +172,13 @@ int chat_write_byte(unsigned char ch)
int chat_close(void)
{
if(in != -1)
if(in != -1) {
close(in);
if(out != -1)
in = -1;
}
if(out != -1) {
close(out);
out = -1;
}
return(togglechat(FALSE));
}
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="MainWindow">
<property name="width_request">400</property>
<property name="height_request">300</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Synchronet Sysop Chat</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon_name">stock_help-chat</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_UTILITY</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<signal name="destroy" handler="on_MainWindow_destroy" last_modification_time="Wed, 08 Mar 2006 07:15:35 GMT"/>
<child>
<widget class="GtkVPaned" id="SplitPane">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="position">148</property>
<child>
<widget class="GtkTextView" id="RemoteText">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Remote Text Window</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
</widget>
<packing>
<property name="shrink">True</property>
<property name="resize">False</property>
</packing>
</child>
<child>
<widget class="GtkTextView" id="LocalText">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">False</property>
<property name="overwrite">False</property>
<property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
<property name="pixels_above_lines">0</property>
<property name="pixels_below_lines">0</property>
<property name="pixels_inside_wrap">0</property>
<property name="left_margin">0</property>
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
<signal name="key_press_event" handler="on_LocalText_key_press_event" last_modification_time="Wed, 08 Mar 2006 07:13:25 GMT"/>
</widget>
<packing>
<property name="shrink">True</property>
<property name="resize">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkWindow" id="WaitWindow">
<property name="visible">True</property>
<property name="title" translatable="yes">Waiting for user</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
<child>
<widget class="GtkFixed" id="fixed1">
<property name="width_request">400</property>
<property name="height_request">40</property>
<property name="visible">True</property>
<child>
<widget class="GtkLabel" id="MessageLabel">
<property name="width_request">400</property>
<property name="height_request">16</property>
<property name="visible">True</property>
<property name="label" translatable="yes">Waiting for user to connect.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="x">0</property>
<property name="y">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="CancelButton">
<property name="width_request">88</property>
<property name="height_request">24</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="on_CancelButton_clicked" last_modification_time="Thu, 09 Mar 2006 02:41:33 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<property name="top_padding">0</property>
<property name="bottom_padding">0</property>
<property name="left_padding">0</property>
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-cancel</property>
<property name="icon_size">4</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">Cancel</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</child>
</widget>
<packing>
<property name="x">160</property>
<property name="y">16</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<!--*- mode: xml -*-->
<interface>
<requires lib="gtk+" version="3.0"/>
<object class="GtkWindow" id="MainWindow">
<property name="width_request">400</property>
<property name="height_request">300</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Synchronet Sysop Chat</property>
<property name="icon_name">stock_help-chat</property>
<property name="type_hint">utility</property>
<signal name="destroy" handler="on_MainWindow_destroy" swapped="no"/>
<child>
<placeholder/>
</child>
<child>
<object class="GtkPaned" id="SplitPane">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="orientation">vertical</property>
<property name="position">148</property>
<child>
<object class="GtkTextView" id="RemoteText">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="editable">False</property>
<property name="wrap_mode">word</property>
</object>
<packing>
<property name="resize">False</property>
<property name="shrink">True</property>
</packing>
</child>
<child>
<object class="GtkTextView" id="LocalText">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="editable">False</property>
<property name="wrap_mode">word</property>
<signal name="key-press-event" handler="on_LocalText_key_press_event" swapped="no"/>
</object>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="WaitWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Waiting for user</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkFixed" id="fixed1">
<property name="width_request">400</property>
<property name="height_request">40</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkLabel" id="MessageLabel">
<property name="width_request">400</property>
<property name="height_request">16</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Waiting for user to connect.</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="width_request">88</property>
<property name="height_request">24</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<signal name="clicked" handler="on_CancelButton_clicked" swapped="no"/>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xscale">0</property>
<property name="yscale">0</property>
<child>
<object class="GtkBox" id="hbox1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-cancel</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Cancel</property>
<property name="use_underline">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="x">160</property>
<property name="y">16</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
......@@ -13,7 +13,7 @@
#define GLADE_HOOKUP_OBJECT(component,widget,name) \
g_object_set_data_full (G_OBJECT (component), name, \
gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
g_object_ref (widget), (GDestroyNotify) g_object_unref)
#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
g_object_set_data (G_OBJECT (component), name, widget)
......@@ -27,17 +27,13 @@ create_MainWindow (void)
GtkWidget *SplitPane;
GtkWidget *RemoteText;
GtkWidget *LocalText;
GtkTooltips *tooltips;
tooltips = gtk_tooltips_new ();
MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (MainWindow, 400, 300);
gtk_window_set_title (GTK_WINDOW (MainWindow), "Synchronet Sysop Chat");
gtk_window_set_icon_name (GTK_WINDOW (MainWindow), "stock_help-chat");
gtk_window_set_type_hint (GTK_WINDOW (MainWindow), GDK_WINDOW_TYPE_HINT_UTILITY);
gtk_window_set_icon_name (GTK_WINDOW (MainWindow), "user-available");
SplitPane = gtk_vpaned_new ();
SplitPane = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
gtk_widget_show (SplitPane);
gtk_container_add (GTK_CONTAINER (MainWindow), SplitPane);
gtk_paned_set_position (GTK_PANED (SplitPane), 148);
......@@ -45,8 +41,8 @@ create_MainWindow (void)
RemoteText = gtk_text_view_new ();
gtk_widget_show (RemoteText);
gtk_paned_pack1 (GTK_PANED (SplitPane), RemoteText, FALSE, TRUE);
GTK_WIDGET_UNSET_FLAGS (RemoteText, GTK_CAN_FOCUS);
gtk_tooltips_set_tip (tooltips, RemoteText, "Remote Text Window", NULL);
gtk_widget_set_can_focus (RemoteText, FALSE);
gtk_widget_set_tooltip_text (RemoteText, "Remote Text Window");
gtk_text_view_set_editable (GTK_TEXT_VIEW (RemoteText), FALSE);
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (RemoteText), GTK_WRAP_WORD);
......@@ -68,11 +64,10 @@ create_MainWindow (void)
GLADE_HOOKUP_OBJECT (MainWindow, SplitPane, "SplitPane");
GLADE_HOOKUP_OBJECT (MainWindow, RemoteText, "RemoteText");
GLADE_HOOKUP_OBJECT (MainWindow, LocalText, "LocalText");
GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, tooltips, "tooltips");
gtk_widget_grab_focus (LocalText);
gtk_timeout_add(50, get_from_remote, RemoteText);
g_timeout_add(50, get_from_remote, RemoteText);
return MainWindow;
}
......@@ -83,13 +78,10 @@ create_WaitWindow (void)
GtkWidget *WaitWindow;
GtkWidget *fixed1;
GtkWidget *CancelButton;
GtkWidget *alignment1;
GtkWidget *hbox1;
GtkWidget *image1;
GtkWidget *label2;
WaitWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (WaitWindow), "Waiting for user");
gtk_window_set_title (GTK_WINDOW (WaitWindow), "Synchronet Sysop Chat");
gtk_window_set_icon_name (GTK_WINDOW (WaitWindow), "user-away");
fixed1 = gtk_fixed_new ();
gtk_widget_show (fixed1);
......@@ -101,27 +93,11 @@ create_WaitWindow (void)
gtk_fixed_put (GTK_FIXED (fixed1), MessageLabel, 0, 0);
gtk_widget_set_size_request (MessageLabel, 400, 16);
CancelButton = gtk_button_new ();
CancelButton = gtk_widget_new (GTK_TYPE_BUTTON, "label", "_Cancel", "use-underline", TRUE, "xalign", 0.5, "yalign", 0.5, NULL);
gtk_widget_show (CancelButton);
gtk_fixed_put (GTK_FIXED (fixed1), CancelButton, 160, 16);
gtk_widget_set_size_request (CancelButton, 88, 24);
alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_widget_show (alignment1);
gtk_container_add (GTK_CONTAINER (CancelButton), alignment1);
hbox1 = gtk_hbox_new (FALSE, 2);
gtk_widget_show (hbox1);
gtk_container_add (GTK_CONTAINER (alignment1), hbox1);
image1 = gtk_image_new_from_stock ("gtk-cancel", GTK_ICON_SIZE_BUTTON);
gtk_widget_show (image1);
gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0);
label2 = gtk_label_new_with_mnemonic ("Cancel");
gtk_widget_show (label2);
gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 0);
g_signal_connect ((gpointer) CancelButton, "clicked",
G_CALLBACK (on_CancelButton_clicked),
NULL);
......@@ -131,12 +107,8 @@ create_WaitWindow (void)
GLADE_HOOKUP_OBJECT (WaitWindow, fixed1, "fixed1");
GLADE_HOOKUP_OBJECT (WaitWindow, MessageLabel, "MessageLabel");
GLADE_HOOKUP_OBJECT (WaitWindow, CancelButton, "CancelButton");
GLADE_HOOKUP_OBJECT (WaitWindow, alignment1, "alignment1");
GLADE_HOOKUP_OBJECT (WaitWindow, hbox1, "hbox1");
GLADE_HOOKUP_OBJECT (WaitWindow, image1, "image1");
GLADE_HOOKUP_OBJECT (WaitWindow, label2, "label2");
gtk_timeout_add(50, connect_wait, WaitWindow);
g_timeout_add(50, connect_wait, WaitWindow);
return WaitWindow;
}
#include <stdlib.h>
#include <locale.h>
#include <gtk/gtk.h>
......@@ -22,7 +23,7 @@ main (int argc, char *argv[])
char *ctrl_dir;
GtkWidget *WaitWindow;
gtk_set_locale ();
setlocale(LC_ALL, "");
gtk_init (&argc, &argv);
/* add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); */
......
......@@ -19,7 +19,7 @@ lookup_widget (GtkWidget *widget,
if (GTK_IS_MENU (widget))
parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
else
parent = widget->parent;
parent = gtk_widget_get_parent(widget);
if (!parent)
parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
if (parent == NULL)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment