Compare commits

...

5 Commits
main ... v40

@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="TermTCP" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/TermTCP" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/TermTCP" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
<Add option="-fexceptions" />
</Compiler>
<Unit filename="TermTCP.c">
<Option compilerVar="CC" />
</Unit>
<Extensions>
<code_completion />
<envvars />
<debugger />
<lib_finder disable_auto="1" />
</Extensions>
</Project>
</CodeBlocks_project_file>

Binary file not shown.

File diff suppressed because it is too large Load Diff

@ -4,7 +4,6 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
GdkPixbuf *create_pixbuf(const gchar * filename) GdkPixbuf *create_pixbuf(const gchar * filename)
{ {
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
@ -18,11 +17,6 @@ GdkPixbuf *create_pixbuf(const gchar * filename)
return pixbuf; return pixbuf;
} }
#ifdef WIN32
#include "winsock2.h"
#include "WS2tcpip.h"
#else
#include <gtk/gtkadjustment.h> #include <gtk/gtkadjustment.h>
#include <gtk/gtkwidget.h> #include <gtk/gtkwidget.h>
#include <sys/socket.h> #include <sys/socket.h>
@ -37,8 +31,7 @@ GdkPixbuf *create_pixbuf(const gchar * filename)
typedef gint32 COLORREF; typedef gint32 COLORREF;
#define RGB(r,g,b) ((COLORREF)(((guint8)(r)|((guint16)((guint8)(g))<<8))|(((guint32)(guint8)(b))<<16))) #define RGB(r,g,b) ((COLORREF)(((guint8)(r)|((guint16)((guint8)(g))<<8))|(((guint32)(guint8)(b))<<16)))
#endif gint vhandle;
char Host[5][100]; char Host[5][100];
char Port[5][10]; char Port[5][10];
char UserName[5][80]; char UserName[5][80];
@ -55,7 +48,7 @@ char PASSN[5][6] = {"Pass1", "Pass2", "Pass3", "Pass4"};
char UN[5][6] = {"User1", "User2", "User3", "User4"}; char UN[5][6] = {"User1", "User2", "User3", "User4"};
char pn[5][6] = {"Path"}; char pn[5][6] = {"Path"};
int CurrentHost = 0; int CurrentHost = 0;
char VersionString[80] = "0.0.1.26"; char VersionString[80] = "1.0.0.40";
char DisMsg[] = "*** Disconnected\r"; char DisMsg[] = "*** Disconnected\r";
@ -63,7 +56,8 @@ int PortMask=65535;
int mtxparam=1; int mtxparam=1;
int MCOM=1; int MCOM=1;
int Split; int Split;
int x,y; int x, y;
int vhandle;
int Bells = FALSE; int Bells = FALSE;
int StripLF = FALSE; int StripLF = FALSE;
int LogMonitor = FALSE; int LogMonitor = FALSE;
@ -74,7 +68,7 @@ int MONColour = TRUE;
int ChatMode = FALSE; int ChatMode = FALSE;
int MonPorts = 1; int MonPorts = 1;
int muionly = 1; int muionly = 1;
int font;
int position; int position;
int left = 100, top = 100, right = 500, bottom = 500; int left = 100, top = 100, right = 500, bottom = 500;
int height; int height;
@ -83,13 +77,13 @@ char Position[50];
gint gx, gy; gint gx, gy;
gint xx, yy; gint xx, yy;
gint xxx, yyy; gint xxx, yyy;
int size; char outputmon[50];
int Size; char monitormon [50];
int Connecting = FALSE; int Connecting = FALSE;
int Disconnecting = FALSE; int Disconnecting = FALSE;
int Connected = FALSE; int Connected = FALSE;
int SocketActive = FALSE; int SocketActive = FALSE;
int monitormon1;
char Title[80]; char Title[80];
@ -102,21 +96,6 @@ void WritetoMonWindow(char * Text, int Len);
int Telnet_Connected(SOCKET sock, int Error); int Telnet_Connected(SOCKET sock, int Error);
int SendMsg(const char * msg, int len); int SendMsg(const char * msg, int len);
#ifdef WIN32
void __cdecl Debugprintf(const char * format, ...)
{
char Mess[1000];
va_list(arglist);
va_start(arglist, format);
vsprintf(Mess, format, arglist);
strcat(Mess, "\r\n");
OutputDebugString(Mess);
return;
}
#endif
COLORREF Colours[256] = {0, COLORREF Colours[256] = {0,
RGB(0,0,0), RGB(0,0,128), RGB(0,0,192), RGB(0,0,255), // 1 - 4 RGB(0,0,0), RGB(0,0,128), RGB(0,0,192), RGB(0,0,255), // 1 - 4
@ -169,6 +148,7 @@ GtkWidget *vscrollbar;
GtkWidget *vscrollbar2; GtkWidget *vscrollbar2;
GtkTextBuffer *text; GtkTextBuffer *text;
GtkTextBuffer *text2; GtkTextBuffer *text2;
GtkTextBuffer *text3;
GtkWidget *entry; GtkWidget *entry;
GtkWidget *vpaned; GtkWidget *vpaned;
GtkWidget *frame1; GtkWidget *frame1;
@ -176,9 +156,10 @@ GtkWidget *frame2;
GIOChannel *RecvChannel; GIOChannel *RecvChannel;
GtkWidget *menubar; GtkWidget *menubar;
GtkWidget *view; GtkWidget *view;
GtkWidget* scrolledwin; GtkWidget *scrolledwin;
GtkWidget *view2; GtkWidget *view2;
GtkWidget* scrolledwin2; GtkWidget *scrolledwin2;
GtkWidget *scrolledwin3;
GtkWidget *montx; GtkWidget *montx;
GtkWidget *monsup; GtkWidget *monsup;
GtkWidget *monnode; GtkWidget *monnode;
@ -192,19 +173,25 @@ GtkWidget *cfgmenu, *tcp_item, *font_item, *strip_item, *logmon_item, *logout_it
GtkWidget *monmenu, *mon_item, *mon[32]; GtkWidget *monmenu, *mon_item, *mon[32];
GtkWidget *tcpmenu; GtkWidget *tcpmenu;
GtkWidget *enbel, *enbel_item; GtkWidget *enbel, *enbel_item;
GtkWidget *propmenu,*propitem; GtkWidget *propmenu,*propitem,*Prop;
GtkWidget *text_view, *font_select_dlg;
GtkWidget *font_select_dlg_ok, *font_select_dlg_apply, *font_select_dlg_cancel;
gchar *fontname;
GtkTextTag *rtag, *btag, *tag[256], *tagm[256]; GtkTextTag *rtag, *btag, *tag[256], *tagm[256];
void EnableDisconnectMenu(); void EnableDisconnectMenu();
void DisableConnectMenu(); void DisableConnectMenu();
void EnableConnectMenu(); void EnableConnectMenu();
void DisableDisconnectMenu(); void DisableDisconnectMenu();
void get_fontname(GtkWidget *, gpointer);
void apply_fontname(GtkWidget *, gpointer);
void open_font_select_dlg(GtkWidget *, gpointer);
void font_select_dlg_exit(GtkWidget *, gpointer);
void close_application(GtkWidget *widget, gpointer data) void close_application(GtkWidget *widget, gpointer data)
{ {
gtk_main_quit (); gtk_main_quit ();
return 0; return;
} }
void enter_callback( GtkWidget *widget, void enter_callback( GtkWidget *widget,
@ -227,7 +214,6 @@ void enter_callback( GtkWidget *widget,
gtk_entry_set_text (GTK_ENTRY (entry), ""); gtk_entry_set_text (GTK_ENTRY (entry), "");
} }
static void Disconnect(GtkWidget *w, gpointer data); static void Disconnect(GtkWidget *w, gpointer data);
static void Toggled(GtkWidget *w, int * data ) static void Toggled(GtkWidget *w, int * data )
{ {
@ -238,28 +224,7 @@ static void Toggled(GtkWidget *w, int * data )
return; return;
} }
static void property(GtkWidget *w, gpointer data)
{
GtkWidget * dialog = gtk_dialog_new_with_buttons("Properties",
GTK_WINDOW(window),
GTK_DIALOG_MODAL,
GTK_STOCK_OK,
GTK_STOCK_CANCEL, 2,
NULL );
GtkWidget *path;
GtkWidget *label5, *content_area1;
GtkWidget *entry5;
content_area1 = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
label5 = gtk_label_new("Path");
gtk_container_add (GTK_CONTAINER (content_area1), label5);
entry5 = gtk_entry_new();
gtk_entry_set_max_length (GTK_ENTRY (entry5), 100);
gtk_widget_show_all (dialog);
}
static void Configure(GtkWidget *w, gpointer data) static void Configure(GtkWidget *w, gpointer data)
{ {
GtkWidget * dialog = gtk_dialog_new_with_buttons( "Configuration", GtkWidget * dialog = gtk_dialog_new_with_buttons( "Configuration",
@ -335,7 +300,6 @@ static void Configure(GtkWidget *w, gpointer data)
char *fname = ".BPQTermTCP.ini"; char *fname = ".BPQTermTCP.ini";
snprintf(path, PATH_MAX, "%s/%s", getenv("HOME"), fname); snprintf(path, PATH_MAX, "%s/%s", getenv("HOME"), fname);
entry_text = gtk_entry_get_text (GTK_ENTRY (entry1)); entry_text = gtk_entry_get_text (GTK_ENTRY (entry1));
strcpy(&Host[HostNum][0], entry_text); strcpy(&Host[HostNum][0], entry_text);
@ -349,7 +313,7 @@ static void Configure(GtkWidget *w, gpointer data)
strcpy(&Password[HostNum][0], entry_text); strcpy(&Password[HostNum][0], entry_text);
KF = g_key_file_new(); KF = g_key_file_new();
g_key_file_load_from_file(KF, "BPQTermTCP.ini", 0, NULL); g_key_file_load_from_file(KF, path, 0, NULL);
sprintf(Key, "Host%d", HostNum + 1); sprintf(Key, "Host%d", HostNum + 1);
g_key_file_set_string(KF, "Session 1", Key, &Host[HostNum][0]); g_key_file_set_string(KF, "Session 1", Key, &Host[HostNum][0]);
@ -366,13 +330,14 @@ static void Configure(GtkWidget *w, gpointer data)
Value = g_key_file_to_data(KF, &length, &error); Value = g_key_file_to_data(KF, &length, &error);
outfile = fopen ("BPQTermTCP.ini", "w"); outfile = fopen ( path, "w");
fputs(Value, outfile); fputs(Value, outfile);
fclose(outfile); fclose(outfile);
g_free(Value); g_free(Value);
g_key_file_free(KF); g_key_file_free(KF);
ReadConfig();
} }
gtk_widget_destroy (dialog); gtk_widget_destroy (dialog);
@ -468,7 +433,7 @@ GtkWidget *get_menubar_menu(GtkWidget *window)
gtk_menu_item_set_submenu (GTK_MENU_ITEM (conn_item), conmenu); gtk_menu_item_set_submenu (GTK_MENU_ITEM (conn_item), conmenu);
dis_item = gtk_menu_item_new_with_label ("Disconnect"); dis_item = gtk_menu_item_new_with_label ("Disconnect");
g_signal_connect (dis_item, "activate", G_CALLBACK (Disconnect), 0); g_signal_connect (dis_item, "activate", G_CALLBACK (Disconnect), 0);
gtk_widget_set_sensitive(dis_item, TRUE); gtk_widget_set_sensitive(dis_item, TRUE);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (dis_item), discmenu); gtk_menu_item_set_submenu (GTK_MENU_ITEM (dis_item), discmenu);
@ -487,8 +452,8 @@ GtkWidget *get_menubar_menu(GtkWidget *window)
g_signal_connect (chat_term, ("toggled"), G_CALLBACK (Toggled), (void *) &ChatMode); g_signal_connect (chat_term, ("toggled"), G_CALLBACK (Toggled), (void *) &ChatMode);
propitem = gtk_menu_item_new_with_label ("Properties"); propitem = gtk_menu_item_new_with_label ("Properties");
// g_signal_connect (Prop[i], "activate", G_CALLBACK (property), (void *) i); g_signal_connect(propitem, "activate", G_CALLBACK (open_font_select_dlg), (void*) &font);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (propitem), propmenu); //gtk_menu_item_set_submenu (GTK_MENU_ITEM (propitem), propmenu);
tcp_item = gtk_menu_item_new_with_label ("TCP Hosts"); tcp_item = gtk_menu_item_new_with_label ("TCP Hosts");
@ -572,7 +537,13 @@ gint ScrollTimer(gpointer data)
gtk_text_buffer_get_end_iter(text, &iter); gtk_text_buffer_get_end_iter(text, &iter);
gtk_text_view_scroll_to_iter ((GtkTextView *)view, &iter, 0.0, FALSE, 0.0, 0.0); gtk_text_view_scroll_to_iter ((GtkTextView *)view, &iter, 0.0, FALSE, 0.0, 0.0);
gtk_text_buffer_get_end_iter(text2, &iter); return FALSE;
}
gint ScrollTimer2(gpointer data)
{
GtkTextIter iter;
gtk_text_buffer_get_end_iter(text2, &iter);
gtk_text_view_scroll_to_iter ((GtkTextView *)view2, &iter, 0.0, FALSE, 0.0, 0.0); gtk_text_view_scroll_to_iter ((GtkTextView *)view2, &iter, 0.0, FALSE, 0.0, 0.0);
return FALSE; return FALSE;
@ -651,7 +622,7 @@ gint PollTimer(gpointer data)
else else
return TRUE; return TRUE;
sprintf(Title,"BPQTermTCP Version %s - Disconnected", VersionString); sprintf(Title,"TermTCP Version %s - Disconnected", VersionString);
gtk_window_set_title (GTK_WINDOW (window), Title); gtk_window_set_title (GTK_WINDOW (window), Title);
DisableDisconnectMenu(); DisableDisconnectMenu();
EnableConnectMenu(); EnableConnectMenu();
@ -672,17 +643,14 @@ gint PollTimer(gpointer data)
static GtkWidget *create_monitor ( void ) static GtkWidget *create_monitor ( void )
{ {
GtkWidget *tree_view;
view = gtk_text_view_new (); view = gtk_text_view_new ();
text = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); text = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
gtk_widget_set_size_request (view, 600, 100);
gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
scrolledwin = gtk_scrolled_window_new(NULL,NULL); scrolledwin = gtk_scrolled_window_new(NULL,NULL);
//gtk_container_set_border_width(GTK_CONTAINER(scrolledwin), 1); gtk_container_set_border_width(GTK_CONTAINER(scrolledwin), 3);
gtk_widget_set_size_request(scrolledwin, 600, 100); gtk_widget_set_size_request(scrolledwin, 500, 100);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin), GTK_SHADOW_IN); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin), GTK_SHADOW_IN);
gtk_container_add(GTK_CONTAINER (scrolledwin), view); gtk_container_add(GTK_CONTAINER (scrolledwin), view);
@ -699,8 +667,8 @@ static GtkWidget *create_output ( void )
gtk_text_view_set_editable (GTK_TEXT_VIEW(view2), FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW(view2), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW(view2), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW(view2), FALSE);
scrolledwin2 = gtk_scrolled_window_new(NULL,NULL); scrolledwin2 = gtk_scrolled_window_new(NULL,NULL);
//gtk_container_set_border_width(GTK_CONTAINER(box2), 2); gtk_container_set_border_width(GTK_CONTAINER(scrolledwin2), 3);
gtk_widget_set_size_request(scrolledwin2, 100, 100); gtk_widget_set_size_request(scrolledwin2, 500, 100);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin2),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin2),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin2), GTK_SHADOW_IN); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin2), GTK_SHADOW_IN);
gtk_container_add(GTK_CONTAINER(scrolledwin2), view2); gtk_container_add(GTK_CONTAINER(scrolledwin2), view2);
@ -709,85 +677,75 @@ static GtkWidget *create_output ( void )
return scrolledwin2; return scrolledwin2;
} }
void frame_callback(GtkWindow *window, gint delete_event( GtkWidget *widget,
GdkEvent *event, gpointer data) GdkEvent *event,
{ gpointer data )
//int x, y; {
char buf[10];
x = event->configure.x;
y = event->configure.y;
sprintf(buf, "%d, %d", x, y);
// gtk_window_set_title(window, buf);
}
//gint delete_event( GtkWidget *widget,
// GdkEvent *event,
// gpointer data )
//{
/* If you return FALSE in the "delete_event" signal handler, /* If you return FALSE in the "delete_event" signal handler,
* GTK will emit the "destroy" signal. Returning TRUE means * GTK will emit the "destroy" signal. Returning TRUE means
* you don't want the window to be destroyed. * you don't want the window to be destroyed.
* This is useful for popping up 'are you sure you want to quit?' * This is useful for popping up 'are you sure you want to quit?'
* type dialogs. */ * type dialogs. */
// g_print ("delete event occurred\n"); g_print ("delete event occurred\n");
// gtk_window_get_size(GTK_WINDOW(widget), &width, &height); gtk_window_get_size(GTK_WINDOW(widget), &width, &height);
// printf("%d %d\n", width, height); gtk_window_get_position(GTK_WINDOW(widget), &x, &y);
//gtk_paned_get_position(GTK_WINDOW(vpaned));
vhandle = gtk_paned_get_position((GtkPaned *)vpaned);
printf("%d %d %d %d %d\n", x, y, width, height, vhandle);
//gtk_widget_get_style(GtkWidget* window);
/* Change TRUE to FALSE and the main window will be destroyed with /* Change TRUE to FALSE and the main window will be destroyed with
* a "delete_event". */ * a "delete_event". */
// return(FALSE); return(FALSE);
//} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
//PangoFontDescription *font_desc;
int i; int i;
// PangoFontDescription *font_desc;
gtk_init (&argc, &argv); gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "Paned Windows");
gtk_signal_connect (GTK_OBJECT (window), "destroy", gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_main_quit), NULL); GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10); gtk_container_set_border_width (GTK_CONTAINER (window), 10);
gtk_widget_set_usize (GTK_WIDGET(window), 450, 400);
ReadConfig(); ReadConfig();
// window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW (window), width, height);
//gtk_window_set_default_size(GTK_WINDOW (window),left - right, top - bottom); gtk_widget_set_uposition(GTK_WIDGET(window),gx, gy);
gtk_widget_set_uposition(window, left, top);
gtk_window_set_resizable (GTK_WINDOW (window), TRUE); gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (close_application), NULL); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (close_application), NULL);
gtk_window_set_title (GTK_WINDOW (window), "BPQTermTCP"); gtk_window_set_title (GTK_WINDOW (window), "TermTCP");
gtk_container_set_border_width (GTK_CONTAINER (window), 0); gtk_container_set_border_width (GTK_CONTAINER (window), 0);
gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("bpqicon.png")); gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("/usr/share/pixmaps/bpqicon.png"));
//gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
//gtk_window_get_frame_dimensions(GTK_WINDOW(window),&left,&top,&right,&bottom);
// Create a box for the menu
// g_signal_connect(G_OBJECT(window), "configure-event", gtk_signal_connect (GTK_OBJECT (window), "delete_event",
// G_CALLBACK(frame_callback), NULL); GTK_SIGNAL_FUNC (delete_event), NULL);
// gtk_signal_connect (GTK_OBJECT (window), "delete_event",
// GTK_SIGNAL_FUNC (delete_event), NULL);
// Create a box for the menu
box1 = gtk_vbox_new (FALSE, 0); box1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), box1); gtk_container_add (GTK_CONTAINER (window), box1);
box10 = gtk_vbox_new (FALSE, 0); box10 = gtk_vbox_new (FALSE, 0);
menubar = get_menubar_menu (window); menubar = get_menubar_menu (window);
gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 1); gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 1);
gtk_container_add (GTK_CONTAINER (box1), box10); gtk_container_add (GTK_CONTAINER (box1), box10);
gtk_widget_show (window); gtk_widget_show (window);
vpaned = gtk_vpaned_new (); vpaned = gtk_vpaned_new ();
gtk_container_add (GTK_CONTAINER (box10), vpaned); gtk_container_add (GTK_CONTAINER (box10), vpaned);
gtk_paned_set_position(GTK_PANED(vpaned), vhandle);
gtk_widget_show (vpaned); gtk_widget_show (vpaned);
/* Now create the contents of the two halves of the window */ /* Now create the contents of the two halves of the window */
@ -799,33 +757,37 @@ int main(int argc, char *argv[])
frame2 = create_output (); frame2 = create_output ();
gtk_paned_add2 (GTK_PANED (vpaned), frame2); gtk_paned_add2 (GTK_PANED (vpaned), frame2);
gtk_widget_show (frame2); gtk_widget_show (frame2);
// gtk_widget_show(box2);
/* Separator */ /* Separator */
separator = gtk_hseparator_new (); separator = gtk_hseparator_new ();
gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
box2 = gtk_vbox_new (FALSE, 10); box2 = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (box2), 1); gtk_container_set_border_width (GTK_CONTAINER (box2), 1);
gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box10), box2, FALSE, FALSE, 0);
// set up the text entry line // set up the text entry line
entry = gtk_entry_new(); entry = gtk_entry_new();
gtk_entry_set_max_length (GTK_ENTRY (entry), 300); gtk_entry_set_max_length (GTK_ENTRY (entry), width);
gtk_entry_set_activates_default(GTK_ENTRY (entry), TRUE); gtk_entry_set_activates_default(GTK_ENTRY (entry), TRUE);
g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (enter_callback), (gpointer) entry); g_signal_connect (G_OBJECT (entry), "activate", G_CALLBACK (enter_callback), (gpointer) entry);
gtk_box_pack_start (GTK_BOX (box2), entry, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (box2), entry, FALSE, FALSE, 0);
gtk_widget_grab_focus(entry);
gtk_widget_show_all (window);
/* Change default font throughout the widget */ /* Change default font throughout the widget */
// font_desc = pango_font_description_from_string ("sans 9"); // font_desc = pango_font_description_from_string (fontname);
// gtk_widget_modify_font (entry, font_desc); // gtk_widget_modify_font (entry, font_desc);
// gtk_widget_modify_font (view, font_desc); // gtk_widget_modify_font (view, font_desc);
// gtk_widget_modify_font (view2, font_desc); // gtk_widget_modify_font (view2, font_desc);
// pango_font_description_free (font_desc); // pango_font_description_free (font_desc);
// gtk_widget_get_size_request(scrolledwin, &xx, &yy);
// gtk_widget_get_size_request(scrolledwin2, &xxx, &yyy);
gtk_widget_show_all (window); //gtk_signal_connect(G_OBJECT(window), "configure-event",
// G_CALLBACK(frame_callback), NULL);
rtag = gtk_text_buffer_create_tag (text, NULL, "foreground", "red", NULL); rtag = gtk_text_buffer_create_tag (text, NULL, "foreground", "red", NULL);
btag = gtk_text_buffer_create_tag (text, NULL, "foreground", "blue", NULL); btag = gtk_text_buffer_create_tag (text, NULL, "foreground", "blue", NULL);
@ -851,16 +813,24 @@ int main(int argc, char *argv[])
gtk_main (); gtk_main ();
{ {
GKeyFile * KF; GKeyFile * KF;
gchar * Value; gchar * Value;
GError *error = NULL; GError *error = NULL;
gsize length; gsize length;
FILE *outfile; FILE *outfile;
KF = g_key_file_new(); char path[PATH_MAX];
g_key_file_load_from_file(KF, "BPQTermTCP.ini", 0, NULL); char *fname = ".BPQTermTCP.ini";
snprintf(path, PATH_MAX, "%s/%s", getenv("HOME"), fname);
KF = g_key_file_new();
g_key_file_load_from_file(KF, path, 0, NULL);
g_key_file_set_integer(KF, "Session 1", "MTX", mtxparam); //printf("%d %d\n", width, height);
g_key_file_set_integer(KF, "Session 1", "MTX", mtxparam);
g_key_file_set_integer(KF, "Session 1", "MCOM", MCOM); g_key_file_set_integer(KF, "Session 1", "MCOM", MCOM);
g_key_file_set_integer(KF, "Session 1", "MonNODES", MonNODES); g_key_file_set_integer(KF, "Session 1", "MonNODES", MonNODES);
g_key_file_set_integer(KF, "Session 1", "ChatMode", ChatMode); g_key_file_set_integer(KF, "Session 1", "ChatMode", ChatMode);
@ -870,12 +840,14 @@ int main(int argc, char *argv[])
g_key_file_set_integer(KF, "Session 1", "MonPorts", MonPorts); g_key_file_set_integer(KF, "Session 1", "MonPorts", MonPorts);
g_key_file_set_integer(KF, "Session 1", "PortMask", PortMask); g_key_file_set_integer(KF, "Session 1", "PortMask", PortMask);
g_key_file_set_integer(KF, "Session 1", "MUIONLY", muionly); g_key_file_set_integer(KF, "Session 1", "MUIONLY", muionly);
// g_key_file_set_string(KF, "Session 1", "Path", &path); sprintf(Position, "%d,%d,%d,%d,%d", x, y, width, height, vhandle);
// printf(Size, "%d,%d,%d,%d", left,top,right,bottom); g_key_file_set_string(KF, "Session 1", "Position", Position);
sprintf(monitormon, "%d,%d", xx, yy);
g_key_file_set_string(KF, "Session 1", "Scrollwin", monitormon);
Value = g_key_file_to_data(KF, &length, &error); Value = g_key_file_to_data(KF, &length, &error);
// sprintf(Value, "%d,%d,%d,%d", &left,&top,&right,&bottom);
// g_key_file_set_string(KF, "Session 1", "Size", &Value); outfile = fopen ( path, "w");
outfile = fopen ("BPQTermTCP.ini", "w");
fputs(Value, outfile); fputs(Value, outfile);
fclose(outfile); fclose(outfile);
@ -887,12 +859,60 @@ int main(int argc, char *argv[])
return 0; return 0;
} }
void open_font_select_dlg(GtkWidget *widget, gpointer data)
{
font_select_dlg=gtk_font_selection_dialog_new( "Select Font");
font_select_dlg_ok=GTK_FONT_SELECTION_DIALOG(font_select_dlg)->ok_button;
font_select_dlg_apply=GTK_FONT_SELECTION_DIALOG(font_select_dlg)->apply_button;
font_select_dlg_cancel=GTK_FONT_SELECTION_DIALOG(font_select_dlg)->cancel_button;
g_signal_connect(G_OBJECT(font_select_dlg_ok), "clicked", G_CALLBACK(get_fontname), NULL);
g_signal_connect(G_OBJECT(font_select_dlg_apply), "clicked", G_CALLBACK(apply_fontname), NULL);
g_signal_connect(G_OBJECT(font_select_dlg_cancel), "clicked", G_CALLBACK(font_select_dlg_exit), NULL);
gtk_widget_show_all(font_select_dlg);
}
void get_fontname(GtkWidget *widget, gpointer data)
{
gchar *fontname;
PangoFontDescription *font_desc;
fontname=gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_select_dlg));
font_desc=pango_font_description_from_string(fontname);
gtk_widget_modify_font (entry, font_desc);
gtk_widget_modify_font (view, font_desc);
gtk_widget_modify_font (view2, font_desc);
gtk_widget_modify_font(window, font_desc);
gtk_widget_destroy(font_select_dlg);
//return;
}
void apply_fontname(GtkWidget *widget, gpointer data)
{
gchar *fontname;
PangoFontDescription *font_desc;
fontname=gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_select_dlg));
font_desc=pango_font_description_from_string(fontname);
gtk_widget_modify_font(window, font_desc);
gtk_widget_modify_font (entry, font_desc);
gtk_widget_modify_font (view, font_desc);
gtk_widget_modify_font (view2, font_desc);
gtk_widget_modify_font(window, font_desc);
}
void font_select_dlg_exit(GtkWidget *widget, gpointer data)
{
gtk_widget_destroy(font_select_dlg);
}
void SendTraceOptions() void SendTraceOptions()
{ {
char Buffer[80]; char Buffer[80];
int Len = sprintf(Buffer,"\\\\\\\\%x %x %x %x %x %x %x\r", PortMask, mtxparam, MCOM, MonNODES, MONColour, muionly,1); //int Len = sprintf(Buffer,"\\\\\\\\%x %x %x %x %x %x\r", PortMask, mtxparam, MCOM, MonNODES, MONColour, muionly);
// ** makes the system use utf8 **
int Len = sprintf(Buffer,"\\\\\\\\%x %x %x %x %x %x %x\r", PortMask, mtxparam, MCOM, MonNODES, MONColour, muionly, 1);
send(sock, Buffer, Len, 0); send(sock, Buffer, Len, 0);
} }
@ -923,7 +943,7 @@ lineloop:
if (len <= 0) if (len <= 0)
{ {
g_timeout_add (100, ScrollTimer, 0); g_timeout_add (100, ScrollTimer2, 0);
return; return;
} }
@ -1309,153 +1329,6 @@ MonLoop:
return TRUE; return TRUE;
} }
/*
gboolean GtkMsg_ShowMessage(GIOChannel *channel, GIOCondition condition, gpointer data)
{
gchar message[MAX_MSG_LEN + 10];
// GtkTextMark* MarkEnd;
gchar * ptr;
char * Buffptr;
char * FEptr = 0;
int len = 0, MonLen;
// GtkWidget *widgetMsgList = lookup_widget(MainWindow, "textview1");
// GtkTextBuffer *textMsgList = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widgetMsgList));
if (condition & G_IO_HUP)
{
if (SocketActive)
closesocket(sock);
else
return 0;
sprintf(Title,"BPQTermTCP Version %s - Disconnected", VersionString);
gtk_window_set_title (GTK_WINDOW (window), Title);
DisableDisconnectMenu();
EnableConnectMenu();
WritetoOutputWindow(DisMsg, strlen(DisMsg));
SocketActive = FALSE;
Connected = FALSE;
Disconnecting = FALSE;
MonData = FALSE;
return TRUE;
}
if ((condition & G_IO_IN) == 0)
return TRUE;
g_io_channel_read_chars (channel, message, MAX_MSG_LEN, &len, NULL);
if (len == 0)
{
if (Disconnecting == FALSE)
{
shutdown(sock, 2); // SD_BOTH
Disconnecting = TRUE;
}
return TRUE;
}
message[len] = 0;
// Look for MON delimiters (FF/FE)
Buffptr = message;
if (MonData)
{
// Already in MON State
FEptr = memchr(Buffptr, 0xfe, len);
if (!FEptr)
{
// no FE - so send all to monitor
WritetoMonWindow(Buffptr, len);
return TRUE;
}
MonData = FALSE;
MonLen = FEptr - Buffptr; // Mon Data, Excluding the FE
WritetoMonWindow(Buffptr, MonLen);
Buffptr = ++FEptr; // Char following FE
if (++MonLen < len)
{
len -= MonLen;
goto MonLoop; // See if next in MON or Data
}
// Nothing Left
return TRUE;
}
MonLoop:
ptr = memchr(Buffptr, 0xff, len);
if (ptr)
{
// Buffer contains Mon Data
if (ptr > Buffptr)
{
// Some Normal Data before the FF
int NormLen = ptr - Buffptr; // Before the FF
WritetoOutputWindow(Buffptr, NormLen);
len -= NormLen;
Buffptr = ptr;
goto MonLoop;
}
MonData = TRUE;
FEptr = memchr(Buffptr, 0xfe, len);
if (FEptr)
{
MonData = FALSE;
MonLen = FEptr + 1 - Buffptr; // MonLen includes FF and FE
WritetoMonWindow(Buffptr+1, MonLen - 2);
len -= MonLen;
Buffptr += MonLen; // Char Following FE
if (len <= 0)
{
return TRUE;
}
goto MonLoop;
}
else
{
// No FE, so rest of buffer is MON Data
WritetoMonWindow(Buffptr+1, len -1); // Exclude FF
// DoRefresh();
return TRUE;
}
}
// No FF, so must be session data
WritetoOutputWindow(Buffptr, len);
// SlowTimer = 0;
return TRUE;
}
*/
int Telnet_Connected(SOCKET sock, int Error) int Telnet_Connected(SOCKET sock, int Error)
{ {
@ -1561,7 +1434,7 @@ void ReadConfig()
{ {
FILE *infile; FILE *infile;
GKeyFile * KF; GKeyFile * KF;
gchar * Value; // gchar * Value;
gchar * Posn; gchar * Posn;
GError *error = NULL; GError *error = NULL;
@ -1574,13 +1447,12 @@ void ReadConfig()
Posn = g_key_file_get_string (KF, "Session 1", "Position", &error); Posn = g_key_file_get_string (KF, "Session 1", "Position", &error);
if (Posn) if (Posn)
sscanf(Posn,"%d,%d,%d,%d",&gx,&gy, &width, &height); sscanf(Posn,"%d,%d,%d,%d,%d",&gx,&gy, &width, &height, &vhandle);
printf("%s %d %d %d %d\n", Posn, gx, gy, width, height); printf("%s %d %d %d %d %d\n", Posn, gx, gy, width, height, vhandle);
PortMask = g_key_file_get_integer(KF, "Session 1", "PortMask", &error); PortMask = g_key_file_get_integer(KF, "Session 1", "PortMask", &error);
Bells = g_key_file_get_integer(KF, "Session 1", "Bells", &error); Bells = g_key_file_get_integer(KF, "Session 1", "Bells", &error);
// StripLF = g_key_file_get_integer(KF, "Session 1", "StripLF", &error);
MCOM = g_key_file_get_integer(KF, "Session 1", "MCOM", &error); MCOM = g_key_file_get_integer(KF, "Session 1", "MCOM", &error);
MONColour = g_key_file_get_integer(KF, "Session 1", "MONColour", &error); MONColour = g_key_file_get_integer(KF, "Session 1", "MONColour", &error);
MonNODES= g_key_file_get_integer(KF, "Session 1", "MonNODES", &error); MonNODES= g_key_file_get_integer(KF, "Session 1", "MonNODES", &error);
@ -1597,7 +1469,7 @@ void ReadConfig()
g_key_file_free(KF); g_key_file_free(KF);
infile = fopen ("BPQTermTCP.ini", "r"); infile = fopen ( path, "r");
if (infile) if (infile)
{ {
Loading…
Cancel
Save

Powered by TurnKey Linux.