diff options
Diffstat (limited to 'kjsembed/docs/examples/imunge/imunge.js')
-rwxr-xr-x | kjsembed/docs/examples/imunge/imunge.js | 239 |
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(); |