summaryrefslogtreecommitdiffstats
path: root/kjsembed/docs/examples/imunge/imunge.js
diff options
context:
space:
mode:
Diffstat (limited to 'kjsembed/docs/examples/imunge/imunge.js')
-rwxr-xr-xkjsembed/docs/examples/imunge/imunge.js239
1 files changed, 239 insertions, 0 deletions
diff --git a/kjsembed/docs/examples/imunge/imunge.js b/kjsembed/docs/examples/imunge/imunge.js
new file mode 100755
index 00000000..72de2c5c
--- /dev/null
+++ b/kjsembed/docs/examples/imunge/imunge.js
@@ -0,0 +1,239 @@
+#!/usr/bin/env kjscmd
+
+//
+// Setup main window
+//
+mw = new KMainWindow();
+ac = mw.actionCollection();
+mb = mw.menuBar();
+sb = mw.statusBar();
+mw.setStandardToolBarMenuEnabled( true );
+
+view = new QScrollView( mw, 'view' );
+
+lbl = new QLabel( view, 'view' );
+lbl.alignment = Qt.AlignCenter;
+lbl.text = 'No Content';
+
+view.addChild( lbl );
+
+mw.setCentralWidget( view );
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+//
+// Center the image in the view
+//
+mw.update_layout = function()
+{
+ var x = 0;
+ var y = 0;
+
+ if ( lbl.width < view.width )
+ x = Math.floor( (view.width - lbl.width) / 2 );
+ if ( lbl.height < view.height )
+ y = Math.floor( (view.height - lbl.height) / 2 );
+
+ view.addChild( lbl, x, y );
+}
+
+mw.resizeEvent = function(ev)
+{
+ this.update_layout();
+}
+
+mw.update_view = function()
+{
+ lbl.pixmap = this.img.pixmap();
+
+ lbl.adjustSize();
+ this.update_layout();
+}
+
+//
+// Load the specified image
+//
+mw.load = function( filename )
+{
+ if ( /^\w+:/.test( filename ) )
+ filename = filename.replace( /^\w+:/, '' );
+
+ this.img = new Image();
+ this.img.load( filename );
+
+ if ( !this.img.isOk() ) {
+ throw 'Failed to load image ' + filename;
+ }
+
+ sb.message( filename );
+ this.imgfile = filename;
+ this.update_view();
+}
+
+//
+// Save the specified image
+//
+mw.save = function( filename )
+{
+ var ok = this.img.save( filename );
+
+ if ( !ok ) {
+ throw 'Failed to save image ' + filename;
+ }
+}
+
+//
+// Open an image file.
+//
+mw.openFile = function()
+{
+ var filename = StdDialog.getOpenFileName( '.' );
+
+ if ( filename.length > 0 ) {
+ this.load( filename );
+ openrecent_action.addURL( filename );
+ openrecent_action.saveEntries( System.KJSConfig.kconfig(), 'test' );
+ System.KJSConfig.sync();
+ }
+}
+
+//
+// Save an image file.
+//
+mw.saveFile = function()
+{
+ this.save( this.imgfile );
+}
+
+//
+// Save an image file.
+//
+mw.saveFileAs = function()
+{
+ var filename = StdDialog.getSaveFileName( '.' );
+
+ if ( filename.length > 0 ) {
+ if ( this.save( filename ) ) {
+ sb.message( filename );
+ this.imgfile = filename;
+ openrecent_action.addURL( filename );
+ openrecent_action.saveEntries( System.KJSConfig.kconfig(), 'test' );
+ System.KJSConfig.sync();
+ }
+ }
+}
+
+mw.saveCopyAs = function()
+{
+ var filename = StdDialog.getSaveFileName( '.' );
+
+ if ( filename.length > 0 ) {
+ this.save( filename );
+ }
+}
+
+mw.fileProperties = function()
+{
+ var net = new NetAccess( null, 'net' );
+ net.propertiesDialog( 'file:' + this.imgfile );
+}
+
+mw.run_ksnapshot = function()
+{
+ shell( 'ksnapshot' );
+}
+
+//
+// Setup the actions
+//
+mw.setup_actions = function()
+{
+ // File menu
+ open_action = StdAction.open( null, '', ac );
+ open_action.connect( open_action, 'activated()', this, 'openFile' );
+
+ openrecent_action = StdAction.openRecent( null, '', ac );
+ openrecent_action.connect( openrecent_action, 'urlSelected(const KURL&)', this, 'load' );
+ openrecent_action.loadEntries( System.KJSConfig.kconfig(), 'test' );
+
+ save_action = StdAction.save( null, '', ac );
+ save_action.connect( save_action, 'activated()', this, 'saveFile' );
+
+ saveas_action = StdAction.saveAs( null, '', ac );
+ saveas_action.connect( saveas_action, 'activated()', this, 'saveFileAs' );
+
+ savecopyas_action = new KAction( ac, 'save_copy_as_action' );
+ savecopyas_action.text = 'Save Copy As...';
+ savecopyas_action.icon = 'filesaveas';
+ savecopyas_action.connect( savecopyas_action, 'activated()', this, 'saveCopyAs' );
+
+ fileproperties_action = new KAction( ac, 'file_properties_action' );
+ fileproperties_action.text = 'Properties...';
+ fileproperties_action.connect( fileproperties_action, 'activated()', this, 'fileProperties' );
+
+ StdAction.quit( application, 'quit()', ac );
+
+ // View menu
+// StdAction.fitToPage( null, '', ac );
+// StdAction.fitToWidth( null, '', ac );
+// StdAction.fitToHeight( null, '', ac );
+// StdAction.actualSize( null, '', ac );
+
+// StdAction.zoomIn( null, '', ac );
+// StdAction.zoomOut( null, '', ac );
+// StdAction.zoom( null, '', ac );
+
+// StdAction.redisplay( null, '', ac );
+
+ // Effects
+ browseeffects_action = new KAction( ac, 'browseeffects_action' );
+ browseeffects_action.text = 'Browse Effects...';
+ browseeffects_action.shortcut = 'Ctrl+E';
+ browseeffects_action.connect( browseeffects_action, 'activated()', this, 'browse_effects' );
+
+ this.create_effect_browser();
+ this.create_all_effects( mw, ac );
+ this.create_image_operations( mw, ac );
+
+ // Tools
+ ksnapshot_action = new KAction( ac, 'ksnapshot_action' );
+ ksnapshot_action.text = 'KSnapshot';
+ ksnapshot_action.icon = 'ksnapshot';
+ ksnapshot_action.connect( ksnapshot_action, 'activated()', this, 'run_ksnapshot' );
+
+ scriptconsole_action = new KToggleAction( ac, 'scriptconsole_action' );
+ scriptconsole_action.text = 'Script Console';
+ scriptconsole_action.icon = 'konsole';
+ scriptconsole_action.connect( scriptconsole_action, 'toggled(bool)', part.view(), 'setShown(bool)' );
+
+ // Settings
+ showmenubar_action = StdAction.showMenubar( null, '', ac );
+ showmenubar_action.connect( showmenubar_action, 'toggled(bool)', mb, 'setShown(bool)' );
+
+ showstatusbar_action = StdAction.showStatusbar( null, '', ac );
+ showstatusbar_action.connect( showstatusbar_action, 'toggled(bool)', sb, 'setShown(bool)' );
+
+ // Help
+ StdAction.aboutApp( null, '', ac );
+ StdAction.aboutKDE( null, '', ac );
+ StdAction.help( null, '', ac );
+ StdAction.helpContents( null, '', ac );
+}
+
+//
+// Activate XMLGUI and show the window
+//
+load( 'imunge_actions.js' );
+mw.setup_actions();
+
+cwd = (new QDir()).absPath();
+mw.createGUI( cwd + '/imungeui.rc' );
+mw.resize( 700, 500 );
+
+if ( application.args.length )
+ mw.load( application.args[0] );
+
+mw.show();
+mw.update_layout();
+
+application.exec();