diff --git a/c_trayapp/CASATrayApp.csproj b/c_trayapp/CASATrayApp.csproj deleted file mode 100644 index 8ee430d8..00000000 --- a/c_trayapp/CASATrayApp.csproj +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/c_trayapp/CASATrayApp.csproj.user b/c_trayapp/CASATrayApp.csproj.user deleted file mode 100644 index ec410105..00000000 --- a/c_trayapp/CASATrayApp.csproj.user +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - diff --git a/c_trayapp/Makefile b/c_trayapp/Makefile deleted file mode 100644 index bb446c38..00000000 --- a/c_trayapp/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# -# configure environment -# -TARGET = CASATrayApp -CS_NAME = $(TARGET)$(xtra).$(EXE) -include global.mak -include defaults.$(PLAT) -include rules.mak - - -# -# target object and source files -# -include src.$(PLAT) -include objs.$(PLAT) - -# -# targets -# -include target.cs diff --git a/c_trayapp/TrayCasa.cs b/c_trayapp/TrayCasa.cs deleted file mode 100644 index db72f8bd..00000000 --- a/c_trayapp/TrayCasa.cs +++ /dev/null @@ -1,369 +0,0 @@ -// mcs -pkg:gtk-sharp TrayLib.cs TrayTest.cs -out:TrayTest.exe -using Gtk; -using Glade; -using System; -using System.IO; -using System.Diagnostics; -using System.Threading; - -using Novell.CASA; -using Novell.CASA.MiCasa.Common; -using Novell.CASA.MiCasa.Communication; - - -public class TrayCasa -{ - - [Glade.Widget] - Gtk.Label label86, - label88; - - [Glade.Widget] - Gtk.Entry entryMasterPassword1, - entryMasterPassword2, - entryMasterPassword3, - entryMasterPassword4; - - [Glade.Widget] - Gtk.Dialog dialogLogin; - -#if W32 - private static System.Windows.Forms.NotifyIcon notifyIcon; - public static System.Drawing.Icon m_iconNormal; - public static System.Drawing.Icon m_iconLocked; -#endif - - - Gtk.Window mainWindow = new Window("Test"); - private static bool firstInstance; - - - public static void Main() - { - - // check for already running - //Mutex mutex = new Mutex(false, "Local\\"+"CASATray", out firstInstance); - - //if (firstInstance) - { - // initialises the application - Application.Init(); - // creates the tray icon - TrayCasa casaTray = new TrayCasa(); - // runs application - Application.Run(); - - // mutex.ReleaseMutex(); - } - } - - public TrayCasa() - { - -#if W32 - Stream s = null; - notifyIcon = new System.Windows.Forms.NotifyIcon(); - try - { - s = File.OpenRead("../images/notify1.ico"); - m_iconNormal = new System.Drawing.Icon(s); - notifyIcon.Icon = m_iconNormal; - } - - catch (Exception e) - { - //MessageBox.Show("File 'notify.ico' cannot be found", "Error"); - Console.WriteLine(e.ToString()); - Console.WriteLine("File 'notify.ico' cannot be found"); - return; - } - - finally - { - if (s != null) - { - s.Close(); - } - } - - try - { - s = File.OpenRead("../images/notifyLocked.ico"); - m_iconLocked = new System.Drawing.Icon(s); - - } - - catch (Exception e) - { - Console.WriteLine("File 'notifyLocked.ico' cannot be found"); - return; - } - - finally - { - if (s != null) - { - s.Close(); - } - } - //notifyIcon.Click +=new EventHandler(notifyIcon_Click); - notifyIcon.DoubleClick +=new EventHandler(notifyIcon_DoubleClick); - notifyIcon.MouseUp +=new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseUp); - notifyIcon.Text = "CASA Manager"; - notifyIcon.Visible = true; -#endif -#if LINUX - /* in order to receive signals, we need a eventbox, because Gtk.Image doesn't receive signals */ - EventBox eb = new EventBox(); - eb.Add(new Image(Stock.MissingImage, IconSize.Menu)); // using stock icon - // hooking event - eb.ButtonPressEvent += new ButtonPressEventHandler (this.OnImageClick); - Egg.TrayIcon icon = new Egg.TrayIcon("Test"); - icon.Add(eb); - // showing the trayicon - icon.ShowAll(); -#endif - } - - private void ShowContextMenu() - { - Menu popupMenu = new Menu(); // creates the menu - - MenuItem miSep = new MenuItem(); - MenuItem miSep2 = new MenuItem(); - MenuItem miSep3 = new MenuItem(); - - ImageMenuItem menuLaunchGUI = new ImageMenuItem ("Launch CASAManager"); - Image appimg = new Image(Stock.New, IconSize.Menu); - menuLaunchGUI.Image = appimg; // sets the menu item's image - menuLaunchGUI.Activated +=new EventHandler(menuLaunchGUI_Activated); - popupMenu.Add(menuLaunchGUI); - popupMenu.Add(miSep); - - ImageMenuItem menuLockMiCasa = new ImageMenuItem ("Lock Secrets"); - - //appimg = new Image(Stock.Close, IconSize.Menu); - appimg = new Image("gtk-dialog-authentication", IconSize.Menu); - menuLockMiCasa.Image = appimg; // sets the menu item's image - menuLockMiCasa.Activated +=new EventHandler(menuLockMiCasa_Activated); - - ImageMenuItem menuUnLockMiCasa = new ImageMenuItem ("Unlock Secrets..."); - appimg = new Image(Stock.Open, IconSize.Menu); - menuUnLockMiCasa.Image = appimg; // sets the menu item's image - menuUnLockMiCasa.Activated +=new EventHandler(menuLockMiCasa_Activated); - - if (MiCASAStore.IsLocked()) - { - menuLockMiCasa.Sensitive = false; - } - else - { - menuUnLockMiCasa.Sensitive = false; - } - - popupMenu.Add(menuLockMiCasa); - popupMenu.Add(menuUnLockMiCasa); - - popupMenu.Add(miSep2); - - ImageMenuItem menuDestroyMiCasa = new ImageMenuItem ("Destroy Secrets"); - appimg = new Image(Stock.Delete, IconSize.Menu); - menuDestroyMiCasa.Image = appimg; // sets the menu item's image - menuDestroyMiCasa.Activated +=new EventHandler(menuDestroyMiCasa_Activated); - popupMenu.Add(menuDestroyMiCasa); - - ImageMenuItem menuOptionsMiCasa = new ImageMenuItem ("Options ...."); - menuOptionsMiCasa.Sensitive = false; - popupMenu.Add(menuOptionsMiCasa); - - popupMenu.Add(miSep3); - - // creates a menu item with no image as default - ImageMenuItem menuPopup1 = new ImageMenuItem ("Exit"); - appimg = new Image(Stock.Quit, IconSize.Menu); - menuPopup1.Image = appimg; // sets the menu item's image - popupMenu.Add(menuPopup1); // adds the menu item to the menu - - // hooks a event when the user clicks the icon - menuPopup1.Activated += new EventHandler(this.OnPopupClick); - popupMenu.ShowAll(); // shows everything - - // pops up the actual menu when the user right clicks - //popupMenu.Popup(null, null, null, IntPtr.Zero, args.Event.Button, args.Event.Time); - - popupMenu.Popup(); - } - - private void OnImageClick (object o, ButtonPressEventArgs args) // handler for mouse click - { - if (args.Event.Button == 3) //right click - { - ShowContextMenu(); - } - } - private void OnPopupClick(object o, EventArgs args) - { - Application.Quit(); // quits the application when the users clicks the popup menu - } -#if W32 - private void notifyIcon_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) - { - if (e.Button == System.Windows.Forms.MouseButtons.Right) - ShowContextMenu(); - } -#endif - - private void menuLaunchGUI_Activated(object sender, EventArgs e) - { - // launch the GUI - Process myProcess = new Process(); -#if W32 - ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("CASAManager.exe"); -#else - ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("mono"); - myProcessStartInfo.Arguments = "/opt/novell/CASA/bin/CASAManager.exe"; -#endif - myProcessStartInfo.UseShellExecute = false; - myProcessStartInfo.RedirectStandardOutput = true; - myProcess.StartInfo = myProcessStartInfo; - myProcess.Start(); - } - - private void menuLockMiCasa_Activated(object sender, EventArgs e) - { - - if (MiCASAStore.IsLocked()) - { - //if( false == miCASA.IsSecretPersistent(1,"") ) - { - //Logger.DbgLog("GUI:CasaMain.Login() - IsMasterPasswordSet returned false"); -#if W32 - Glade.XML gxmlTemp = new Glade.XML ("../images/casa-1.5.glade", "dialogLogin", null); -#endif -#if LINUX - Glade.XML gxmlTemp = new Glade.XML ("/opt/novell/CASA/images/casa-1.5.glade", "dialogLogin", null); -#endif - gxmlTemp.Autoconnect (this); - //dialogLogin.TransientFor = windowMain; - - label86.Text = "Enter your Master Password to unlock your secrets"; - entryMasterPassword3.Text=""; - label88.Hide(); - entryMasterPassword4.Hide(); - dialogLogin.Show(); - } - } - else - { - MiCasaRequestReply.Send(MiCasaRequestReply.VERB_LOCK_STORE); -#if W32 - notifyIcon.Icon = m_iconLocked; -#endif - } - } - - private void menuDestroyMiCasa_Activated(object sender, EventArgs e) - { - // prompt user - MessageDialog md=new MessageDialog(mainWindow,Gtk.DialogFlags.Modal, - Gtk.MessageType.Warning, - Gtk.ButtonsType.OkCancel, - "This will destroy all of your secrets.\r\nAre you sure?"); - - md.SetPosition(Gtk.WindowPosition.Center); - md.Response +=new ResponseHandler(md_Response); - md.Modal = true; - md.Show(); - } - - private void md_Response2(object o, ResponseArgs args) - { - MessageDialog md = (MessageDialog)o; - if (md != null) - { - md.Destroy(); - } - } - - private void md_Response(object o, ResponseArgs args) - { - if (args.ResponseId.Equals(Gtk.ResponseType.Ok)) - { - MiCasaRequestReply.Send(MiCasaRequestReply.VERB_REMOVE_ALL_SECRETS); - } - - MessageDialog md = (MessageDialog)o; - if (md != null) - { - md.Destroy(); - } - } - - // test code - public void okbuttonLogin_clicked(object abj, EventArgs args) - { - if( 0 == miCASA.SetMasterPassword(0, entryMasterPassword3.Text) ) - { - // unlock it - MiCasaRequestReply.Send(MiCasaRequestReply.VERB_UNLOCK_STORE, entryMasterPassword3.Text); -#if W32 - notifyIcon.Icon = m_iconNormal; -#endif - dialogLogin.Destroy(); - - } - else - { - // prompt user - MessageDialog md=new MessageDialog(mainWindow,Gtk.DialogFlags.Modal, - Gtk.MessageType.Warning, - Gtk.ButtonsType.Ok, - "Master Password entered is incorrect"); - - md.Response +=new ResponseHandler(md_Response2); - md.SetPosition(Gtk.WindowPosition.Center); - md.Modal = true; - md.Show(); - } - } - - - - public void closebuttonLogin_clicked(object abj, EventArgs args) - { - dialogLogin.Destroy(); - } - - - public void OnDialogLoginDeleted(object obj, DeleteEventArgs args) - { - args.RetVal = true; - } - - public void on_entryMasterPassword3_activate(object obj, EventArgs args) - { - if( true == entryMasterPassword4.Visible ) - entryMasterPassword4.HasFocus = true; - else if( "" != entryMasterPassword3.Text ) - okbuttonLogin_clicked(obj, args); - } - - public void on_entryMasterPassword4_activate(object obj, EventArgs args) - { - okbuttonLogin_clicked(obj, args); - } - - /* - public bool IsMasterPasswordSet() - { - string MICASA_PASSCODE_BY_MASTER_PASSWD_FILE = "/.miCASAPCByMPasswd"; - string fileName = Environment.GetEnvironmentVariable("HOME")+MICASA_PASSCODE_BY_MASTER_PASSWD_FILE; - return (File.Exists(fileName)); - } - */ - - private void notifyIcon_DoubleClick(object sender, EventArgs e) - { - menuLockMiCasa_Activated(sender, e); - } -} diff --git a/c_trayapp/TrayLib.cs b/c_trayapp/TrayLib.cs deleted file mode 100644 index 99b3548b..00000000 --- a/c_trayapp/TrayLib.cs +++ /dev/null @@ -1,243 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -using Gtk; -using Gdk; - -namespace Egg -{ - public class TrayIcon : Plug - { - int stamp; - Orientation orientation; - - int selection_atom; - int manager_atom; - int system_tray_opcode_atom; - int orientation_atom; - IntPtr manager_window; - FilterFunc filter; - - public TrayIcon (string name) - { - Title = name; - stamp = 1; - orientation = Orientation.Horizontal; - AddEvents ((int)EventMask.PropertyChangeMask); - filter = new FilterFunc (ManagerFilter); - } - - protected override void OnRealized () - { - base.OnRealized (); - Display display = Screen.Display; - IntPtr xdisplay = gdk_x11_display_get_xdisplay (display.Handle); - selection_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_S" + Screen.Number.ToString (), false); - manager_atom = XInternAtom (xdisplay, "MANAGER", false); - system_tray_opcode_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_OPCODE", false); - orientation_atom = XInternAtom (xdisplay, "_NET_SYSTEM_TRAY_ORIENTATION", false); - UpdateManagerWindow (); - //Screen.RootWindow.AddFilter (filter); - } - - protected override void OnUnrealized () - { - if (manager_window != IntPtr.Zero) - { - Gdk.Window gdkwin = Gdk.Window.LookupForDisplay (Display, (uint)manager_window); - //gdkwin.RemoveFilter (filter); - } - - //Screen.RootWindow.RemoveFilter (filter); - base.OnUnrealized (); - } - - private void UpdateManagerWindow () - { - IntPtr xdisplay = gdk_x11_display_get_xdisplay (Display.Handle); - if (manager_window != IntPtr.Zero) - { - Gdk.Window gdkwin = Gdk.Window.LookupForDisplay (Display, (uint)manager_window); - //gdkwin.RemoveFilter (filter); - } - - XGrabServer (xdisplay); - - manager_window = XGetSelectionOwner (xdisplay, selection_atom); - if (manager_window != IntPtr.Zero) - XSelectInput (xdisplay, manager_window, EventMask.StructureNotifyMask | EventMask.PropertyChangeMask); - XUngrabServer (xdisplay); - XFlush (xdisplay); - - if (manager_window != IntPtr.Zero) - { - Gdk.Window gdkwin = Gdk.Window.LookupForDisplay (Display, (uint)manager_window); - //gdkwin.AddFilter (filter); - SendDockRequest (); - GetOrientationProperty (); - } - } - - private void SendDockRequest () - { - SendManagerMessage (SystemTrayMessage.RequestDock, manager_window, Id, 0, 0); - } - - private void SendManagerMessage (SystemTrayMessage message, IntPtr window, uint data1, uint data2, uint data3) - { - XClientMessageEvent ev = new XClientMessageEvent (); - IntPtr display; - - ev.type = XEventName.ClientMessage; - ev.window = window; - ev.message_type = (IntPtr)system_tray_opcode_atom; - ev.format = 32; - ev.ptr1 = gdk_x11_get_server_time (GdkWindow.Handle); - ev.ptr2 = (IntPtr)message; - ev.ptr3 = (IntPtr)data1; - ev.ptr4 = (IntPtr)data2; - ev.ptr5 = (IntPtr)data3; - - display = gdk_x11_display_get_xdisplay (Display.Handle); - gdk_error_trap_push (); - XSendEvent (display, manager_window, false, EventMask.NoEventMask, ref ev); - gdk_error_trap_pop (); - } - - private FilterReturn ManagerFilter (IntPtr xevent, Event evnt) - { - //TODO: Implement; - return FilterReturn.Continue; - } - - private void GetOrientationProperty () - { - //TODO: Implement; - } - - [DllImport ("gdk-x11-2.0")] - static extern IntPtr gdk_x11_display_get_xdisplay (IntPtr display); - [DllImport ("gdk-x11-2.0")] - static extern IntPtr gdk_x11_get_server_time (IntPtr window); - [DllImport ("gdk-x11-2.0")] - static extern void gdk_error_trap_push (); - [DllImport ("gdk-x11-2.0")] - static extern void gdk_error_trap_pop (); - - [DllImport ("libX11", EntryPoint="XInternAtom")] - extern static int XInternAtom(IntPtr display, string atom_name, bool only_if_exists); - [DllImport ("libX11")] - extern static void XGrabServer (IntPtr display); - [DllImport ("libX11")] - extern static void XUngrabServer (IntPtr display); - [DllImport ("libX11")] - extern static int XFlush (IntPtr display); - [DllImport ("libX11")] - extern static IntPtr XGetSelectionOwner (IntPtr display, int atom); - [DllImport ("libX11")] - extern static IntPtr XSelectInput (IntPtr window, IntPtr display, EventMask mask); - [DllImport ("libX11", EntryPoint="XSendEvent")] - extern static int XSendEvent(IntPtr display, IntPtr window, bool propagate, EventMask event_mask, ref XClientMessageEvent send_event); - } - - [Flags] - internal enum EventMask - { - NoEventMask = 0, - KeyPressMask = 1<<0, - KeyReleaseMask = 1<<1, - ButtonPressMask = 1<<2, - ButtonReleaseMask = 1<<3, - EnterWindowMask = 1<<4, - LeaveWindowMask = 1<<5, - PointerMotionMask = 1<<6, - PointerMotionHintMask = 1<<7, - Button1MotionMask = 1<<8, - Button2MotionMask = 1<<9, - Button3MotionMask = 1<<10, - Button4MotionMask = 1<<11, - Button5MotionMask = 1<<12, - ButtonMotionMask = 1<<13, - KeymapStateMask = 1<<14, - ExposureMask = 1<<15, - VisibilityChangeMask = 1<<16, - StructureNotifyMask = 1<<17, - ResizeRedirectMask = 1<<18, - SubstructureNotifyMask = 1<<19, - SubstructureRedirectMask= 1<<20, - FocusChangeMask = 1<<21, - PropertyChangeMask = 1<<22, - ColormapChangeMask = 1<<23, - OwnerGrabButtonMask = 1<<24 - } - - internal enum SystemTrayMessage - { - RequestDock, - BeginMessage, - CancelMessage - } - - internal enum SystemTrayOrientation - { - Horz, - Vert - } - - [StructLayout(LayoutKind.Sequential)] - internal struct XClientMessageEvent - { - internal XEventName type; - internal IntPtr serial; - internal bool send_event; - internal IntPtr display; - internal IntPtr window; - internal IntPtr message_type; - internal int format; - internal IntPtr ptr1; - internal IntPtr ptr2; - internal IntPtr ptr3; - internal IntPtr ptr4; - internal IntPtr ptr5; - } - - internal enum XEventName - { - KeyPress = 2, - KeyRelease = 3, - ButtonPress = 4, - ButtonRelease = 5, - MotionNotify = 6, - EnterNotify = 7, - LeaveNotify = 8, - FocusIn = 9, - FocusOut = 10, - KeymapNotify = 11, - Expose = 12, - GraphicsExpose = 13, - NoExpose = 14, - VisibilityNotify = 15, - CreateNotify = 16, - DestroyNotify = 17, - UnmapNotify = 18, - MapNotify = 19, - MapRequest = 20, - ReparentNotify = 21, - ConfigureNotify = 22, - ConfigureRequest = 23, - GravityNotify = 24, - ResizeRequest = 25, - CirculateNotify = 26, - CirculateRequest = 27, - PropertyNotify = 28, - SelectionClear = 29, - SelectionRequest = 30, - SelectionNotify = 31, - ColormapNotify = 32, - ClientMessage = 33, - MappingNotify = 34, - TimerNotify = 100, - - LASTEvent - } -} \ No newline at end of file diff --git a/c_trayapp/objs.lux b/c_trayapp/objs.lux deleted file mode 100644 index 735682ed..00000000 --- a/c_trayapp/objs.lux +++ /dev/null @@ -1,3 +0,0 @@ -OBJS=\ - TrayCasa \ - TrayLib diff --git a/c_trayapp/src.lux b/c_trayapp/src.lux deleted file mode 100644 index 2661444a..00000000 --- a/c_trayapp/src.lux +++ /dev/null @@ -1,3 +0,0 @@ -SRC=\ - TrayCasa.cs \ - TrayLib.cs