From: <ev...@us...> - 2011-12-09 01:48:49
|
Revision: 20583 http://jedit.svn.sourceforge.net/jedit/?rev=20583&view=rev Author: evanpw Date: 2011-12-09 01:48:42 +0000 (Fri, 09 Dec 2011) Log Message: ----------- Added an option pane for quartz rendering, alternative keyboard dispatcher, and disabling option key shortcuts Modified Paths: -------------- plugins/MacOSX/trunk/MacOSX.props plugins/MacOSX/trunk/macosx/MacOSXPlugin.java Added Paths: ----------- plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java Modified: plugins/MacOSX/trunk/MacOSX.props =================================================================== --- plugins/MacOSX/trunk/MacOSX.props 2011-12-08 21:26:00 UTC (rev 20582) +++ plugins/MacOSX/trunk/MacOSX.props 2011-12-09 01:48:42 UTC (rev 20583) @@ -1,5 +1,5 @@ plugin.macosx.MacOSXPlugin.activate=startup -#plugin.macosx.MacOSXPlugin.option-pane=MacOSXPlugin +plugin.macosx.MacOSXPlugin.option-pane=MacOSXPlugin #plugin.macosx.MacOSXPlugin.menu.code=new MacOSXPlugin(); @@ -25,8 +25,12 @@ # # Options dialog # -#options.MacOSXPlugin.code=new macos.MacOSXOptionPane(); -#options.MacOSXPlugin.label=Mac OS X Settings +options.MacOSXPlugin.code=new macosx.MacOSXPluginOptionPane(); +options.MacOSXPlugin.label=Mac OS X Settings +options.MacOSXPlugin.experimental=Experimental options +options.MacOSXPlugin.useQuartz=Use OS X native Quartz renderer (restart required) +options.MacOSXPlugin.altDispatcher=Use alternative keyboard dispatcher (may help with buggy international keyboards) +options.MacOSXPlugin.disableOption=Disable option-key shortcuts # # Error dialogs @@ -40,3 +44,9 @@ compiler.source=1.5 compiler.target=1.5 +# +# Plugin options +# +plugin.MacOSXPlugin.altDispatcher=false +plugin.MacOSXPlugin.disableOption=false + Modified: plugins/MacOSX/trunk/macosx/MacOSXPlugin.java =================================================================== --- plugins/MacOSX/trunk/macosx/MacOSXPlugin.java 2011-12-08 21:26:00 UTC (rev 20582) +++ plugins/MacOSX/trunk/macosx/MacOSXPlugin.java 2011-12-09 01:48:42 UTC (rev 20583) @@ -91,6 +91,10 @@ }; ThreadUtilities.runInDispatchThread(setup); + + // Set global keyboard options from local properties + Debug.ALTERNATIVE_DISPATCHER = jEdit.getBooleanProperty("plugin.MacOSXPlugin.altDispatcher"); + Debug.ALT_KEY_PRESSED_DISABLED = jEdit.getBooleanProperty("plugin.MacOSXPlugin.disableOption"); } } //}}} @@ -266,6 +270,42 @@ } } } + + public static void setAlternativeDispatcher(boolean state) + { + jEdit.setBooleanProperty("plugin.MacOSXPlugin.altDispatcher", state); + Debug.ALTERNATIVE_DISPATCHER = state; + } + + public static boolean getAlternativeDispatcher() + { + // This is a public variable, so it can be changed at any time + boolean state = Debug.ALTERNATIVE_DISPATCHER; + if (jEdit.getBooleanProperty("plugin.MacOSXPlugin.altDispatcher") != state) + { + jEdit.setBooleanProperty("plugin.MacOSXPlugin.altDispatcher", state); + } + + return state; + } + + public static void setDisableOption(boolean state) + { + jEdit.setBooleanProperty("plugin.MacOSXPlugin.disableOption", state); + Debug.ALT_KEY_PRESSED_DISABLED = state; + } + + public static boolean getDisableOption() + { + // This is a public variable, so it can be changed at any time + boolean state = Debug.ALT_KEY_PRESSED_DISABLED; + if (jEdit.getBooleanProperty("plugin.MacOSXPlugin.disableOption") != state) + { + jEdit.setBooleanProperty("plugin.MacOSXPlugin.disableOption", state); + } + + return state; + } //{{{ osok() method private boolean osok() Added: plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java =================================================================== --- plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java (rev 0) +++ plugins/MacOSX/trunk/macosx/MacOSXPluginOptionPane.java 2011-12-09 01:48:42 UTC (rev 20583) @@ -0,0 +1,106 @@ +/* + * MacOSXPluginOptionPane.java - Option pane for MacOSXPlugin + * + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package macosx; + +//{{{ Imports +import java.io.IOException; +import java.io.File; +import java.io.FileOutputStream; +import javax.swing.JCheckBox; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.AbstractOptionPane; +import org.gjt.sp.util.IOUtilities; +import org.gjt.sp.util.Log; +//}}} + +public class MacOSXPluginOptionPane extends AbstractOptionPane +{ + public MacOSXPluginOptionPane() + { + super("macosx"); + } + + //{{{ _init() method + @Override + protected void _init() + { + String settingsDirectory = jEdit.getSettingsDirectory(); + useQuartz = new JCheckBox(jEdit.getProperty("options.MacOSXPlugin.useQuartz")); + useQuartz.setSelected(!new File(settingsDirectory, "noquartz").exists()); + addComponent(useQuartz); + + addSeparator("options.MacOSXPlugin.experimental"); + + altDispatcher = new JCheckBox(jEdit.getProperty( + "options.MacOSXPlugin.altDispatcher")); + altDispatcher.setSelected(MacOSXPlugin.getAlternativeDispatcher()); + addComponent(altDispatcher); + + disableOption = new JCheckBox(jEdit.getProperty( + "options.MacOSXPlugin.disableOption")); + disableOption.setSelected(MacOSXPlugin.getDisableOption()); + addComponent(disableOption); + } //}}} + + //{{{ _save() method + protected void _save() + { + setFileFlag("noquartz", !useQuartz.isSelected()); + MacOSXPlugin.setAlternativeDispatcher(altDispatcher.isSelected()); + MacOSXPlugin.setDisableOption(disableOption.isSelected()); + } //}}} + + //{{{ setFileFlag() method + private void setFileFlag(String fileName, boolean present) + { + String settingsDirectory = jEdit.getSettingsDirectory(); + if(settingsDirectory != null) + { + File file = new File(settingsDirectory, fileName); + if (!present) + { + file.delete(); + } + else + { + FileOutputStream out = null; + try + { + out = new FileOutputStream(file); + out.write('\n'); + out.close(); + } + catch(IOException io) + { + Log.log(Log.ERROR,this,io); + } + finally + { + IOUtilities.closeQuietly(out); + } + } + } + } //}}} + + private JCheckBox useQuartz; + private JCheckBox altDispatcher; + private JCheckBox disableOption; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |