1 /* 2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 3 * 4 * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. 5 * 6 * The contents of this file are subject to the terms of either the GNU Lesser 7 * General Public License Version 2.1 only ("LGPL") or the Common Development and 8 * Distribution License ("CDDL")(collectively, the "License"). You may not use this 9 * file except in compliance with the License. You can obtain a copy of the CDDL at 10 * http://www.opensource.org/licenses/cddl1.php and a copy of the LGPLv2.1 at 11 * http://www.opensource.org/licenses/lgpl-license.php. See the License for the 12 * specific language governing permissions and limitations under the License. When 13 * distributing the software, include this License Header Notice in each file and 14 * include the full text of the License in the License file as well as the 15 * following notice: 16 * 17 * NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE 18 * (CDDL) 19 * For Covered Software in this distribution, this License shall be governed by the 20 * laws of the State of California (excluding conflict-of-law provisions). 21 * Any litigation relating to this License shall be subject to the jurisdiction of 22 * the Federal Courts of the Northern District of California and the state courts 23 * of the State of California, with venue lying in Santa Clara County, California. 24 * 25 * Contributor(s): 26 * 27 * If you wish your version of this file to be governed by only the CDDL or only 28 * the LGPL Version 2.1, indicate your decision by adding "[Contributor]" elects to 29 * include this software in this distribution under the [CDDL or LGPL Version 2.1] 30 * license." If you don't indicate a single choice of license, a recipient has the 31 * option to distribute your version of this file under either the CDDL or the LGPL 32 * Version 2.1, or to extend the choice of license to its licensees as provided 33 * above. However, if you add LGPL Version 2.1 code and therefore, elected the LGPL 34 * Version 2 license, then the option applies only if the new code is made subject 35 * to such option by the copyright holder. 36 */ 37 38 #import <Cocoa/Cocoa.h> 39 #import <Growl/Growl.h> 40 41 #import "CandidateWindow.h" 42 #import "imi_data.h" 43 #import "imi_options.h" 44 #import "ic_history.h" 45 46 typedef enum { 47 SWITCH_BY_NONE = 0, 48 SWITCH_BY_CAPS = 1, 49 SWITCH_BY_SHIFT = 2, 50 } SwitchingPolicies; 51 52 //Note: the SunPinyinApplicationDelegate is instantiated automatically as an outlet of NSApp's instance 53 @interface SunPinyinApplicationDelegate : NSObject <GrowlApplicationBridgeDelegate> 54 { 55 IBOutlet NSMenu* _menu; 56 IBOutlet CandidateWindow* _candiWin; 57 IBOutlet NSPanel* _prefPanel; 58 IBOutlet NSTextField* _ftTxtField; 59 60 bool _inputChinesePuncts; 61 bool _inputFullSymbols; 62 SwitchingPolicies _switchingPolicy; 63 bool _usingUSKbLayout; 64 CIMIData* _data; 65 CBigramHistory* _history; 66 CSunpinyinOptions* _pref; 67 } 68 69 -(NSMenu*)menu; 70 -(CIMIData*)sysData; 71 -(CBigramHistory*)history; 72 -(void)saveHistory; 73 -(CSunpinyinOptions*)preferences; 74 -(CandidateWindow*)candiWin; 75 76 -(IBAction)showPrefPanel:(id)sender; 77 -(IBAction)showFontPanel:(id)sender; 78 -(IBAction)checkForUpdate:(id)sender; 79 80 -(IBAction)toggleChinesePuncts:(id)sender; 81 -(bool)inputChinesePuncts; 82 -(IBAction)toggleFullSymbols:(id)sender; 83 -(bool)inputFullSymbols; 84 85 -(SwitchingPolicies)switchingPolicy; 86 -(bool)usingUSKbLayout; 87 88 -(NSDictionary *)registrationDictionaryForGrowl; 89 -(void)messageNotify:(NSString*)msg; 90 @end 91