summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXSysTray.c
diff options
context:
space:
mode:
authorKevin Walzer <kw@codebykevin.com>2020-10-07 15:35:32 (GMT)
committerKevin Walzer <kw@codebykevin.com>2020-10-07 15:35:32 (GMT)
commit8d7de9f083ca2a746658e5ede62840886bb9daf6 (patch)
treeb7cc65a8feb004b9496da277a7a3a97800938de2 /macosx/tkMacOSXSysTray.c
parente0ef77469fe7862f7d61e87fd22a0737359218c7 (diff)
downloadtk-8d7de9f083ca2a746658e5ede62840886bb9daf6.zip
tk-8d7de9f083ca2a746658e5ede62840886bb9daf6.tar.gz
tk-8d7de9f083ca2a746658e5ede62840886bb9daf6.tar.bz2
Remove global variable
Diffstat (limited to 'macosx/tkMacOSXSysTray.c')
-rw-r--r--macosx/tkMacOSXSysTray.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/macosx/tkMacOSXSysTray.c b/macosx/tkMacOSXSysTray.c
index 2c51e08..adeb497 100644
--- a/macosx/tkMacOSXSysTray.c
+++ b/macosx/tkMacOSXSysTray.c
@@ -16,12 +16,6 @@
#include "tkMacOSXPrivate.h"
/*
- * Script callback when status icon is clicked.
- */
-
-char * callbackproc;
-
-/*
* Class declaratons and implementations for TkStatusItem.
*/
@@ -30,11 +24,13 @@ char * callbackproc;
NSStatusBar * statusBar;
NSImage * icon;
NSString * tooltip;
+ char * callback;
}
- (id) init;
- (void) setImagewithImage : (NSImage * ) image;
- (void) setTextwithString : (NSString * ) string;
+- (void) setCallback : (char *) callback;
- (void) clickOnStatusItem: (id) sender;
- (void) dealloc;
@@ -67,12 +63,17 @@ char * callbackproc;
statusItem.button.toolTip = tooltip;
}
+- (void) setCallback : (char *) callbackproc
+{
+ callback = callbackproc;
+}
+
- (void) clickOnStatusItem: (id) sender
{
if (NSApp.currentEvent.clickCount == 1) {
TkMainInfo * info = TkGetMainInfoList();
- Tcl_GlobalEval(info -> interp, callbackproc);
+ Tcl_GlobalEval(info -> interp, callback);
}
}
@@ -240,12 +241,13 @@ MacSystrayCmd(ClientData clientData, Tcl_Interp * interp,
* Set the proc for the callback.
*/
- callbackproc = (char*) argv[4];
- if (callbackproc == NULL) {
+ char *cb;
+ cb = (char*) argv[4];
+ if (cb == NULL) {
Tcl_AppendResult(interp, " unable to get the callback for systray icon", (char * ) NULL);
return TCL_ERROR;
}
-
+ [tk_item setCallback: cb];
} else if ((strncmp(argv[1], "modify", length) == 0) &&
(length >= 2)) {
if (argc < 4) {
@@ -305,11 +307,13 @@ MacSystrayCmd(ClientData clientData, Tcl_Interp * interp,
*/
if (strcmp (modifyitem, "callback") == 0) {
- callbackproc = (char*) argv[3];
- if (callbackproc == NULL) {
+ char *cb;
+ cb = (char*) argv[3];
+ if (cb == NULL) {
Tcl_AppendResult(interp, " unable to get the callback for systray icon", (char * ) NULL);
return TCL_ERROR;
}
+ [tk_item setCallback: cb];
}
} else if ((strncmp(argv[1], "destroy", length) == 0) && (length >= 2)) {