CASATrayApp was merged into the GUI. Removing now.
This commit is contained in:
parent
3b71a53d7c
commit
eddf865f0b
@ -1,145 +0,0 @@
|
|||||||
<VisualStudioProject>
|
|
||||||
<CSHARP
|
|
||||||
ProjectType = "Local"
|
|
||||||
ProductVersion = "7.10.3077"
|
|
||||||
SchemaVersion = "2.0"
|
|
||||||
ProjectGuid = "{358575F1-A305-43F8-8B9D-0BEC8C1376B1}"
|
|
||||||
>
|
|
||||||
<Build>
|
|
||||||
<Settings
|
|
||||||
ApplicationIcon = ""
|
|
||||||
AssemblyKeyContainerName = ""
|
|
||||||
AssemblyName = "CASATrayApp"
|
|
||||||
AssemblyOriginatorKeyFile = ""
|
|
||||||
DefaultClientScript = "JScript"
|
|
||||||
DefaultHTMLPageLayout = "Grid"
|
|
||||||
DefaultTargetSchema = "IE50"
|
|
||||||
DelaySign = "false"
|
|
||||||
OutputType = "WinExe"
|
|
||||||
PreBuildEvent = ""
|
|
||||||
PostBuildEvent = ""
|
|
||||||
RootNamespace = "CASATrayApp"
|
|
||||||
RunPostBuildEvent = "OnBuildSuccess"
|
|
||||||
StartupObject = "TrayCasa"
|
|
||||||
>
|
|
||||||
<Config
|
|
||||||
Name = "Debug"
|
|
||||||
AllowUnsafeBlocks = "false"
|
|
||||||
BaseAddress = "285212672"
|
|
||||||
CheckForOverflowUnderflow = "false"
|
|
||||||
ConfigurationOverrideFile = ""
|
|
||||||
DefineConstants = "W32"
|
|
||||||
DocumentationFile = ""
|
|
||||||
DebugSymbols = "true"
|
|
||||||
FileAlignment = "4096"
|
|
||||||
IncrementalBuild = "false"
|
|
||||||
NoStdLib = "false"
|
|
||||||
NoWarn = ""
|
|
||||||
Optimize = "false"
|
|
||||||
OutputPath = "..\c_gui\Release\"
|
|
||||||
RegisterForComInterop = "false"
|
|
||||||
RemoveIntegerChecks = "false"
|
|
||||||
TreatWarningsAsErrors = "false"
|
|
||||||
WarningLevel = "4"
|
|
||||||
/>
|
|
||||||
<Config
|
|
||||||
Name = "Release"
|
|
||||||
AllowUnsafeBlocks = "false"
|
|
||||||
BaseAddress = "285212672"
|
|
||||||
CheckForOverflowUnderflow = "false"
|
|
||||||
ConfigurationOverrideFile = ""
|
|
||||||
DefineConstants = "W32"
|
|
||||||
DocumentationFile = ""
|
|
||||||
DebugSymbols = "false"
|
|
||||||
FileAlignment = "4096"
|
|
||||||
IncrementalBuild = "false"
|
|
||||||
NoStdLib = "false"
|
|
||||||
NoWarn = ""
|
|
||||||
Optimize = "true"
|
|
||||||
OutputPath = "bin\Release\"
|
|
||||||
RegisterForComInterop = "false"
|
|
||||||
RemoveIntegerChecks = "false"
|
|
||||||
TreatWarningsAsErrors = "false"
|
|
||||||
WarningLevel = "4"
|
|
||||||
/>
|
|
||||||
</Settings>
|
|
||||||
<References>
|
|
||||||
<Reference
|
|
||||||
Name = "System"
|
|
||||||
AssemblyName = "System"
|
|
||||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "System.Data"
|
|
||||||
AssemblyName = "System.Data"
|
|
||||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "System.Drawing"
|
|
||||||
AssemblyName = "System.Drawing"
|
|
||||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Drawing.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "System.Windows.Forms"
|
|
||||||
AssemblyName = "System.Windows.Forms"
|
|
||||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Windows.Forms.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "System.XML"
|
|
||||||
AssemblyName = "System.Xml"
|
|
||||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "Novell.CASA.Common"
|
|
||||||
Project = "{57CD94A2-5B4A-40C3-8189-CB760FB78357}"
|
|
||||||
Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "atk-sharp"
|
|
||||||
AssemblyName = "atk-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\atk-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "gdk-sharp"
|
|
||||||
AssemblyName = "gdk-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\gdk-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "glade-sharp"
|
|
||||||
AssemblyName = "glade-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\glade-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "glib-sharp"
|
|
||||||
AssemblyName = "glib-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\glib-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "gtk-sharp"
|
|
||||||
AssemblyName = "gtk-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\gtk-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "pango-sharp"
|
|
||||||
AssemblyName = "pango-sharp"
|
|
||||||
HintPath = "..\extern\w32\gtk-sharp-2.0\pango-sharp.dll"
|
|
||||||
/>
|
|
||||||
<Reference
|
|
||||||
Name = "Novell.CASA.miCASAWrapper"
|
|
||||||
Project = "{E21DD887-22F4-4935-9851-409715F663B0}"
|
|
||||||
Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
|
|
||||||
/>
|
|
||||||
</References>
|
|
||||||
</Build>
|
|
||||||
<Files>
|
|
||||||
<Include>
|
|
||||||
<File
|
|
||||||
RelPath = "TrayCasa.cs"
|
|
||||||
SubType = "Code"
|
|
||||||
BuildAction = "Compile"
|
|
||||||
/>
|
|
||||||
</Include>
|
|
||||||
</Files>
|
|
||||||
</CSHARP>
|
|
||||||
</VisualStudioProject>
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
<VisualStudioProject>
|
|
||||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
|
||||||
<Build>
|
|
||||||
<Settings ReferencePath = "D:\casa\extern\w32\gtk-sharp-2.0\" >
|
|
||||||
<Config
|
|
||||||
Name = "Debug"
|
|
||||||
EnableASPDebugging = "false"
|
|
||||||
EnableASPXDebugging = "false"
|
|
||||||
EnableUnmanagedDebugging = "false"
|
|
||||||
EnableSQLServerDebugging = "false"
|
|
||||||
RemoteDebugEnabled = "false"
|
|
||||||
RemoteDebugMachine = ""
|
|
||||||
StartAction = "Project"
|
|
||||||
StartArguments = ""
|
|
||||||
StartPage = ""
|
|
||||||
StartProgram = ""
|
|
||||||
StartURL = ""
|
|
||||||
StartWorkingDirectory = ""
|
|
||||||
StartWithIE = "true"
|
|
||||||
/>
|
|
||||||
<Config
|
|
||||||
Name = "Release"
|
|
||||||
EnableASPDebugging = "false"
|
|
||||||
EnableASPXDebugging = "false"
|
|
||||||
EnableUnmanagedDebugging = "false"
|
|
||||||
EnableSQLServerDebugging = "false"
|
|
||||||
RemoteDebugEnabled = "false"
|
|
||||||
RemoteDebugMachine = ""
|
|
||||||
StartAction = "Project"
|
|
||||||
StartArguments = ""
|
|
||||||
StartPage = ""
|
|
||||||
StartProgram = ""
|
|
||||||
StartURL = ""
|
|
||||||
StartWorkingDirectory = ""
|
|
||||||
StartWithIE = "true"
|
|
||||||
/>
|
|
||||||
</Settings>
|
|
||||||
</Build>
|
|
||||||
<OtherProjectSettings
|
|
||||||
CopyProjectDestinationFolder = ""
|
|
||||||
CopyProjectUncPath = ""
|
|
||||||
CopyProjectOption = "0"
|
|
||||||
ProjectView = "ProjectFiles"
|
|
||||||
ProjectTrust = "0"
|
|
||||||
/>
|
|
||||||
</CSHARP>
|
|
||||||
</VisualStudioProject>
|
|
||||||
|
|
@ -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
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
OBJS=\
|
|
||||||
TrayCasa \
|
|
||||||
TrayLib
|
|
@ -1,3 +0,0 @@
|
|||||||
SRC=\
|
|
||||||
TrayCasa.cs \
|
|
||||||
TrayLib.cs
|
|
Loading…
Reference in New Issue
Block a user