X11Controller.h revision 6747b715
14642e01fSmrg/* X11Controller.h -- connect the IB ui
24642e01fSmrg
34642e01fSmrg   Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
44642e01fSmrg
54642e01fSmrg   Permission is hereby granted, free of charge, to any person
64642e01fSmrg   obtaining a copy of this software and associated documentation files
74642e01fSmrg   (the "Software"), to deal in the Software without restriction,
84642e01fSmrg   including without limitation the rights to use, copy, modify, merge,
94642e01fSmrg   publish, distribute, sublicense, and/or sell copies of the Software,
104642e01fSmrg   and to permit persons to whom the Software is furnished to do so,
114642e01fSmrg   subject to the following conditions:
124642e01fSmrg
134642e01fSmrg   The above copyright notice and this permission notice shall be
144642e01fSmrg   included in all copies or substantial portions of the Software.
154642e01fSmrg
164642e01fSmrg   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
174642e01fSmrg   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
184642e01fSmrg   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
194642e01fSmrg   NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
204642e01fSmrg   HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
214642e01fSmrg   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
224642e01fSmrg   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
234642e01fSmrg   DEALINGS IN THE SOFTWARE.
244642e01fSmrg
254642e01fSmrg   Except as contained in this notice, the name(s) of the above
264642e01fSmrg   copyright holders shall not be used in advertising or otherwise to
274642e01fSmrg   promote the sale, use or other dealings in this Software without
284642e01fSmrg   prior written authorization. */
294642e01fSmrg
304642e01fSmrg#ifndef X11CONTROLLER_H
314642e01fSmrg#define X11CONTROLLER_H 1
324642e01fSmrg
336747b715Smrg#ifdef HAVE_DIX_CONFIG_H
346747b715Smrg#include <dix-config.h>
356747b715Smrg#endif
366747b715Smrg
374642e01fSmrg#if __OBJC__
384642e01fSmrg
394642e01fSmrg#include "sanitizedCocoa.h"
404642e01fSmrg#include "xpr/x-list.h"
414642e01fSmrg
426747b715Smrg#ifdef XQUARTZ_SPARKLE
436747b715Smrg#define BOOL OSX_BOOL
446747b715Smrg#include <Sparkle/SUUpdater.h>
456747b715Smrg#undef BOOL
466747b715Smrg#endif
476747b715Smrg
486747b715Smrg#ifndef NSINTEGER_DEFINED
496747b715Smrg#if __LP64__ || NS_BUILD_32_LIKE_64
506747b715Smrgtypedef long NSInteger;
516747b715Smrgtypedef unsigned long NSUInteger;
526747b715Smrg#else
536747b715Smrgtypedef int NSInteger;
546747b715Smrgtypedef unsigned int NSUInteger;
556747b715Smrg#endif
566747b715Smrg#endif
576747b715Smrg
584642e01fSmrg@interface X11Controller : NSObject
596747b715Smrg#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
606747b715Smrg<NSTableViewDataSource>
616747b715Smrg#endif
624642e01fSmrg{
634642e01fSmrg    IBOutlet NSPanel *prefs_panel;
644642e01fSmrg
654642e01fSmrg    IBOutlet NSButton *fake_buttons;
664642e01fSmrg    IBOutlet NSButton *enable_fullscreen;
674642e01fSmrg    IBOutlet NSButton *enable_fullscreen_menu;
684642e01fSmrg    IBOutlet NSButton *use_sysbeep;
694642e01fSmrg    IBOutlet NSButton *enable_keyequivs;
704642e01fSmrg    IBOutlet NSButton *sync_keymap;
716747b715Smrg    IBOutlet NSButton *option_sends_alt;
724642e01fSmrg    IBOutlet NSButton *click_through;
734642e01fSmrg    IBOutlet NSButton *focus_follows_mouse;
744642e01fSmrg    IBOutlet NSButton *focus_on_new_window;
754642e01fSmrg    IBOutlet NSButton *enable_auth;
764642e01fSmrg    IBOutlet NSButton *enable_tcp;
774642e01fSmrg    IBOutlet NSButton *sync_pasteboard;
784642e01fSmrg    IBOutlet NSButton *sync_pasteboard_to_clipboard;
794642e01fSmrg    IBOutlet NSButton *sync_pasteboard_to_primary;
804642e01fSmrg    IBOutlet NSButton *sync_clipboard_to_pasteboard;
814642e01fSmrg    IBOutlet NSButton *sync_primary_immediately;
824642e01fSmrg    IBOutlet NSTextField *sync_text1;
834642e01fSmrg    IBOutlet NSTextField *sync_text2;
844642e01fSmrg    IBOutlet NSPopUpButton *depth;
854642e01fSmrg
864642e01fSmrg    IBOutlet NSMenuItem *window_separator;
876747b715Smrg    // window_separator is DEPRECATED due to this radar:
886747b715Smrg    // <rdar://problem/7088335> NSApplication releases the separator in the Windows menu even though it's an IBOutlet
896747b715Smrg    // It is kept around for localization compatability and is subject to removal "eventually"
906747b715Smrg    // If it is !NULL (meaning it is in the nib), it is removed from the menu and released
916747b715Smrg
926747b715Smrg    IBOutlet NSMenuItem *x11_about_item;
934642e01fSmrg    IBOutlet NSMenuItem *dock_window_separator;
944642e01fSmrg    IBOutlet NSMenuItem *apps_separator;
954642e01fSmrg    IBOutlet NSMenuItem *toggle_fullscreen_item;
966747b715Smrg#ifdef XQUARTZ_SPARKLE
976747b715Smrg    NSMenuItem *check_for_updates_item; // Programatically enabled
986747b715Smrg#endif
994642e01fSmrg    IBOutlet NSMenuItem *copy_menu_item;
1004642e01fSmrg    IBOutlet NSMenu *dock_apps_menu;
1014642e01fSmrg    IBOutlet NSTableView *apps_table;
1024642e01fSmrg
1034642e01fSmrg    NSArray *apps;
1044642e01fSmrg    NSMutableArray *table_apps;
1054642e01fSmrg
1064642e01fSmrg    IBOutlet NSMenu *dock_menu;
1076747b715Smrg
1086747b715Smrg    // This is where in the Windows menu we'll start (this will be the index of the separator)
1096747b715Smrg    NSInteger windows_menu_start;
1104642e01fSmrg
1114642e01fSmrg    int checked_window_item;
1124642e01fSmrg    x_list *pending_apps;
1134642e01fSmrg
1144642e01fSmrg    OSX_BOOL finished_launching;
1154642e01fSmrg    OSX_BOOL can_quit;
1164642e01fSmrg}
1174642e01fSmrg
1184642e01fSmrg- (void) set_window_menu:(NSArray *)list;
1194642e01fSmrg- (void) set_window_menu_check:(NSNumber *)n;
1204642e01fSmrg- (void) set_apps_menu:(NSArray *)list;
1216747b715Smrg#ifdef XQUARTZ_SPARKLE
1226747b715Smrg- (void) setup_sparkle;
1236747b715Smrg- (void) updater:(SUUpdater *)updater willInstallUpdate:(SUAppcastItem *)update;
1246747b715Smrg#endif
1254642e01fSmrg- (void) set_can_quit:(OSX_BOOL)state;
1264642e01fSmrg- (void) server_ready;
1276747b715Smrg- (OSX_BOOL) application:(NSApplication *)app openFile:(NSString *)filename;
1284642e01fSmrg
1294642e01fSmrg- (IBAction) apps_table_show:(id)sender;
1304642e01fSmrg- (IBAction) apps_table_done:(id)sender;
1314642e01fSmrg- (IBAction) apps_table_new:(id)sender;
1324642e01fSmrg- (IBAction) apps_table_duplicate:(id)sender;
1334642e01fSmrg- (IBAction) apps_table_delete:(id)sender;
1344642e01fSmrg- (IBAction) bring_to_front:(id)sender;
1354642e01fSmrg- (IBAction) close_window:(id)sender;
1364642e01fSmrg- (IBAction) minimize_window:(id)sender;
1374642e01fSmrg- (IBAction) zoom_window:(id)sender;
1384642e01fSmrg- (IBAction) next_window:(id)sender;
1394642e01fSmrg- (IBAction) previous_window:(id)sender;
1404642e01fSmrg- (IBAction) enable_fullscreen_changed:(id)sender;
1414642e01fSmrg- (IBAction) toggle_fullscreen:(id)sender;
1424642e01fSmrg- (IBAction) prefs_changed:(id)sender;
1434642e01fSmrg- (IBAction) prefs_show:(id)sender;
1444642e01fSmrg- (IBAction) quit:(id)sender;
1454642e01fSmrg- (IBAction) x11_help:(id)sender;
1464642e01fSmrg
1474642e01fSmrg@end
1484642e01fSmrg
1494642e01fSmrg#endif /* __OBJC__ */
1504642e01fSmrg
1514642e01fSmrgvoid X11ControllerMain(int argc, char **argv, char **envp);
1524642e01fSmrg
1534642e01fSmrg#endif /* X11CONTROLLER_H */
154