--- /root/Media/abiword-2.1.6/abi/src/wp/ap/xp/ap_TopRuler.cpp	2004-08-18 19:17:53.000000000 -0400
+++ ./ap_TopRuler.cpp	2004-09-28 21:49:01.770533088 -0400
@@ -2035,6 +2035,18 @@
         return 0;
 }
 
+void AP_TopRuler::setTabStop(int m_iTabType)
+{
+	//m_iDefaultTabType = static_cast<eTabType>(m_iTabType);
+}
+
+// produce old behaviour if showTabMenu is not implemented on platform
+void AP_TopRuler::showTabMenu(void)
+{
+	currentTabType = --currentTabType <= FL_TAB_NONE ? __FL_TAB_MAX-1 :  currentTabType;
+	m_iDefaultTabType = static_cast<eTabType>(currentTabType);
+}
+
 void AP_TopRuler::mousePress(EV_EditModifierState /* ems */,
                                                          EV_EditMouseButton emb , UT_uint32 x, UT_uint32 y)
 {
@@ -2093,16 +2105,16 @@
           if ( pView->getViewMode () == VIEW_WEB )
             return ;
 
-		int currentTabType = m_iDefaultTabType;
+		currentTabType = m_iDefaultTabType;
                 if(emb == EV_EMB_BUTTON1)
                 {
                         currentTabType = ++currentTabType >= __FL_TAB_MAX ? FL_TAB_NONE+1 : currentTabType;
+			m_iDefaultTabType = static_cast<eTabType>(currentTabType);
                 }
-		else
+		else if (emb == EV_EMB_BUTTON3)
                 {
-			currentTabType = --currentTabType <= FL_TAB_NONE ? __FL_TAB_MAX-1 :  currentTabType;
+			showTabMenu ();
                 }
-		m_iDefaultTabType = static_cast<eTabType>(currentTabType);
                 _drawTabToggle(NULL, true);
                 XAP_String_Id baseTabName = AP_STRING_ID_TabToggleLeftTab-1;
                 _displayStatusMessage(baseTabName + m_iDefaultTabType);
--- /root/Media/abiword-2.1.6/abi/src/wp/ap/xp/ap_TopRuler.h	2004-03-22 19:13:28.000000000 -0500
+++ ./ap_TopRuler.h	2004-09-28 21:51:04.421887248 -0400
@@ -204,6 +204,8 @@
 
         UT_sint32       setTableLineDrag(PT_DocPosition pos, UT_sint32 x, UT_sint32 & iFixed);
         void			mouseMotion(EV_EditModifierState ems, UT_sint32 x, UT_sint32 y);
+	void			setTabStop (int);
+	virtual void		showTabMenu (void);
         void			mousePress(EV_EditModifierState ems, EV_EditMouseButton emb, UT_uint32 x, UT_uint32 y);
         void			mouseRelease(EV_EditModifierState ems, EV_EditMouseButton emb, UT_sint32 x, UT_sint32 y);
 
@@ -355,6 +357,7 @@
         bool				m_bBeforeFirstMotion;
         UT_sint32			m_oldX; /* Only for dragging; used to see if object has moved */
 
+	int				currentTabType;
         eTabType			m_iDefaultTabType;
         UT_sint32           m_draggingCell; // index of cell being dragged
         bool				m_bGuide;	/* true ==> guide line XORed onscreen */
--- /root/Media/abiword-2.1.6/abi/src/wp/ap/unix/ap_UnixTopRuler.h	2002-07-27 20:49:40.000000000 -0400
+++ ../unix/ap_UnixTopRuler.h	2004-09-28 21:58:48.751298448 -0400
@@ -37,11 +37,12 @@
 
 class AP_UnixTopRuler : public AP_TopRuler
 {
-public:
+public :
         AP_UnixTopRuler(XAP_Frame * pFrame);
         virtual ~AP_UnixTopRuler(void);
 
         GtkWidget *		createWidget(void);
+	virtual void		showTabMenu (void);
         virtual void	setView(AV_View * pView);
 
         // cheats for the callbacks
@@ -58,6 +59,7 @@
         class _fe
         {
         public:
+		static void TabStop(GtkWidget * w, gpointer TabType);
                 static gint button_press_event(GtkWidget * w, GdkEventButton * e);
                 static gint button_release_event(GtkWidget * w, GdkEventButton * e);
                 static gint configure_event(GtkWidget* w, GdkEventConfigure *e);
--- /root/Media/abiword-2.1.6/abi/src/wp/ap/unix/ap_UnixTopRuler.cpp	2004-03-01 06:45:35.000000000 -0500
+++ ../unix/ap_UnixTopRuler.cpp	2004-09-28 21:54:15.729804024 -0400
@@ -24,6 +24,7 @@
 #include "ut_debugmsg.h"
 #include "xap_UnixDialogHelper.h"
 
+#include "ap_Strings.h"
 #include "xap_Frame.h"
 #include "xap_UnixFrameImpl.h"
 
@@ -153,7 +154,50 @@
         return m_rootWindow;
 }
 
-		
+/*****************************************************************/
+
+void AP_UnixTopRuler::_fe::TabStop(GtkWidget * w, gpointer TabType)
+{
+	AP_UnixTopRuler * pUnixTopRuler = static_cast<AP_UnixTopRuler *>(g_object_get_data (G_OBJECT (w), "user_data"));
+	pUnixTopRuler->setTabStop (GPOINTER_TO_INT (TabType));
+}
+
+void AP_UnixTopRuler::showTabMenu (void)
+{
+	GtkWidget *menu = gtk_menu_new ();
+	GtkWidget *menu_item;
+	int TabType = 0;
+
+	UT_String pzMessageFormat;
+	m_pFrame->getApp()->getStringSet()->getValue(AP_STRING_ID_TabToggleLeftTab, XAP_App::getApp()->getDefaultEncoding(),pzMessageFormat);
+	menu_item = gtk_menu_item_new_with_label (pzMessageFormat.c_str ());
+	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (_fe::TabStop), GINT_TO_POINTER (TabType++));
+	gtk_menu_append (GTK_MENU (menu), menu_item);
+	
+	m_pFrame->getApp()->getStringSet()->getValue(AP_STRING_ID_TabToggleCenterTab, XAP_App::getApp()->getDefaultEncoding(),pzMessageFormat);
+	menu_item = gtk_menu_item_new_with_label (pzMessageFormat.c_str ());
+	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (_fe::TabStop), GINT_TO_POINTER (TabType++));
+	gtk_menu_append (GTK_MENU (menu), menu_item);
+	
+	m_pFrame->getApp()->getStringSet()->getValue(AP_STRING_ID_TabToggleRightTab, XAP_App::getApp()->getDefaultEncoding(),pzMessageFormat);
+	menu_item = gtk_menu_item_new_with_label (pzMessageFormat.c_str ());
+	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (_fe::TabStop), GINT_TO_POINTER (TabType++));
+	gtk_menu_append (GTK_MENU (menu), menu_item);
+	
+	m_pFrame->getApp()->getStringSet()->getValue(AP_STRING_ID_TabToggleDecimalTab, XAP_App::getApp()->getDefaultEncoding(),pzMessageFormat);
+	menu_item = gtk_menu_item_new_with_label (pzMessageFormat.c_str ());
+	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (_fe::TabStop), GINT_TO_POINTER (TabType++));
+	gtk_menu_append (GTK_MENU (menu), menu_item);
+	
+	m_pFrame->getApp()->getStringSet()->getValue(AP_STRING_ID_TabToggleBarTab, XAP_App::getApp()->getDefaultEncoding(),pzMessageFormat);
+	menu_item = gtk_menu_item_new_with_label (pzMessageFormat.c_str ());
+	g_signal_connect (G_OBJECT (menu_item), "activate", G_CALLBACK (_fe::TabStop), GINT_TO_POINTER (TabType));
+	gtk_menu_append (GTK_MENU (menu), menu_item);
+
+	gtk_widget_show_all (menu);
+	gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time ());
+}
+
 /*****************************************************************/
 
 gint AP_UnixTopRuler::_fe::button_press_event(GtkWidget * w, GdkEventButton * e)
Received on Wed Sep 29 04:14:31 2004
This archive was generated by hypermail 2.1.8 : Wed Sep 29 2004 - 04:14:31 CEST