├── BSDmakefile ├── GNUmakefile ├── LICENSE ├── LICENSE.icons ├── Makefile ├── README ├── TODO ├── changelog ├── config.Mk ├── debian ├── README.Debian ├── README.source ├── changelog ├── compat ├── control ├── copyright ├── docs ├── files ├── init.d.ex ├── menu.ex ├── opencde.debhelper.log ├── opencde.dirs ├── opencde.substvars ├── patches │ └── series ├── postinst.ex ├── postrm.ex ├── preinst.ex ├── prerm.ex ├── rules ├── source │ └── format └── watch.ex ├── doc ├── 3dpixmaps-COPYRIGHT ├── LICENSE.GPL2 ├── ini ├── manifesto │ ├── Makefile │ ├── manifesto.pdf │ └── manifesto.tex ├── motifmm.dia └── screenshots │ ├── dtlock.png │ ├── dtlogin.png │ ├── dtpad.png │ ├── dtpad2.png │ └── dtsplash.png ├── etc └── opencde │ ├── dtfile │ └── filetypes.ini │ └── dtpanel │ └── menus.ini ├── lib └── README ├── script ├── dtsession ├── dtterm └── dtwm ├── share └── opencde │ ├── app-defaults │ ├── Dtfile │ ├── Dtpanel │ ├── Dtterm │ ├── Dtwm │ └── Mwm │ ├── backdrops │ ├── blackmarble.xpm │ ├── blue_squares.xpm │ ├── boxed_layer.xpm │ └── metal_holes.xpm │ ├── dtlogin │ └── scripts │ │ ├── login │ │ ├── session │ │ └── xinitrc │ ├── dtpanel │ └── icons │ │ ├── Mail2.xpm │ │ ├── Multimedia2.xpm │ │ ├── Multimedia3.xpm │ │ ├── ODtcal.l.xpm │ │ ├── ODtcalc.m.xpm │ │ ├── ODtclock.l.xpm │ │ ├── ODtclock.m.xpm │ │ ├── ODtctrlpanel.l.xpm │ │ ├── ODtfile.l.xpm │ │ ├── ODthelp.l.xpm │ │ ├── ODtterm-root.l.xpm │ │ ├── ODtterm-root.m.xpm │ │ ├── ODtterm.l.xpm │ │ ├── ODtterm.m.xpm │ │ ├── ODtwww.l.xpm │ │ ├── ODtwww.m.xpm │ │ ├── TextEditor.xpm │ │ ├── cli.xpm │ │ ├── text_3d.xpm │ │ ├── text_blue_3d.xpm │ │ └── xterm.next.xpm │ ├── dtwm │ └── dtwmrc │ └── pixmaps │ ├── Fpdown.t.xpm │ ├── Fpexclamation.xpm │ ├── Fpexit.s.xpm │ ├── Fplock.s.xpm │ ├── Fpmin.l.xpm │ ├── ODtClipboard.l.pm │ ├── ODtKey.m.pm │ ├── ODtShred.m.pm │ ├── ODtShred.s.pm │ ├── ODtStyle.l.pm │ ├── ODtapp.l.pm │ ├── ODthelp.l.pm │ ├── ODttrsh.l.pm │ ├── OpenCDEExceptionBanner.xpm │ ├── OpenCDELogoSmall.xpm │ ├── VendorLogo.xpm │ └── Welcome.xpm └── src ├── Makefile ├── dtfile ├── FileView.cpp ├── FileView.h ├── FileWindow.cpp ├── FileWindow.h ├── Item.cpp ├── Item.h ├── Makefile ├── Rectangle.cpp ├── Rectangle.h └── main.cpp ├── dthelp └── DESIGN.txt ├── dtlock ├── LockDialog.cpp ├── LockDialog.h ├── Makefile └── main.cpp ├── dtlogin ├── LoginWindow.cpp ├── LoginWindow.h ├── Makefile └── main.cpp ├── dtpad ├── Dtpad ├── LICENSE ├── Makefile ├── Todo ├── bxutils.c ├── callbacks.c ├── creation.c ├── creation.h ├── dtpad.uil ├── main.c ├── utilities.c └── utilities.h ├── dtpanel ├── ExitDialog.cpp ├── ExitDialog.h ├── Grab.cpp ├── Grab.h ├── Makefile ├── MenuWindow.cpp ├── MenuWindow.h ├── PanelWindow.cpp ├── PanelWindow.h └── main.cpp ├── dtrun ├── Makefile ├── RunWindow.cpp ├── RunWindow.h └── main.cpp ├── dtsplash ├── .SplashDialog.cpp.swp ├── Makefile ├── SplashDialog.cpp ├── SplashDialog.h └── main.cpp ├── libmotifmm ├── Application.cpp ├── Button.cpp ├── Color.cpp ├── Component.cpp ├── Container.cpp ├── Custom.cpp ├── Dialog.cpp ├── IconButton.cpp ├── Label.cpp ├── Makefile ├── MenuBar.cpp ├── MessageBox.cpp ├── Panel.cpp ├── Password.cpp ├── PulldownMenu.cpp ├── ScrollBar.cpp ├── ScrolledPanel.cpp ├── ScrolledText.cpp ├── Separator.cpp ├── Text.cpp ├── Timer.cpp ├── ToggleButton.cpp ├── Window.cpp └── include │ ├── motifmm.h │ └── motifmm │ ├── Application.h │ ├── Button.h │ ├── Color.h │ ├── Component.h │ ├── Container.h │ ├── Custom.h │ ├── Dialog.h │ ├── Function.h │ ├── IconButton.h │ ├── Label.h │ ├── MenuBar.h │ ├── MessageBox.h │ ├── MotifException.h │ ├── Panel.h │ ├── Password.h │ ├── PulldownMenu.h │ ├── ScrollBar.h │ ├── ScrolledPanel.h │ ├── ScrolledText.h │ ├── Separator.h │ ├── Text.h │ ├── Timer.h │ ├── ToggleButton.h │ ├── Window.h │ └── auto_vector.h └── libopencde ├── Environment.cpp ├── ExceptionDialog.cpp ├── Filesystem.cpp ├── Ini.cpp ├── Makefile ├── Shell.cpp ├── Workspace.cpp ├── include ├── opencde.h └── opencde │ ├── Environment.h │ ├── ExceptionDialog.h │ ├── Filesystem.h │ ├── Ini.h │ ├── OpenCDEException.h │ ├── Shell.h │ └── Workspace.h └── vdesk.cpp /BSDmakefile: -------------------------------------------------------------------------------- 1 | include Makefile 2 | 3 | # It's expected that the casual user will "make install" 4 | # These sub-targets are meant for packagers who need a modular system 5 | # otherwise install.sys and install.bin would need install.lib 6 | # and install.all 7 | # install.xm is for straight Motif binaries. 8 | install: install.lib install.sys install.xm install.bin install.all 9 | 10 | 11 | install.all: install.dirs 12 | ${INST} -m 0755 bin/dtsession ${INSTDIR}/bin/ 13 | ${INST} -m 0755 bin/dtterm ${INSTDIR}/bin/ 14 | ${INST} -m 0755 bin/dtwm ${INSTDIR}/bin/ 15 | cp -r share/opencde ${INSTDIR}/share/ 16 | .if ${FSH}x==FSHx 17 | cp -r etc/opencde ${DESTDIR}/etc/ 18 | .else 19 | cp -r etc/opencde ${INSTDIR}/etc/ 20 | .endif 21 | 22 | -------------------------------------------------------------------------------- /GNUmakefile: -------------------------------------------------------------------------------- 1 | include Makefile 2 | 3 | # It's expected that the casual user will "make install" 4 | # These sub-targets are meant for packagers who need a modular system 5 | # otherwise install.sys and install.bin would need install.lib 6 | # and install.all 7 | # install.xm is for straight Motif binaries. 8 | install: install.lib install.sys install.xm install.bin install.all 9 | 10 | 11 | install.all: install.dirs 12 | ${INST} -m 0755 bin/dtsession ${INSTDIR}/bin/ 13 | ${INST} -m 0755 bin/dtterm ${INSTDIR}/bin/ 14 | ${INST} -m 0755 bin/dtwm ${INSTDIR}/bin/ 15 | cp -r share/opencde ${INSTDIR}/share/ 16 | ifeq ($(PREFIX),/usr) 17 | sed -e 's|export LD_LIB.*PATH||' -i ${INSTDIR}/share/opencde/dtlogin/scripts/session 18 | endif 19 | ifeq ($(FSH),FSH) 20 | cp -r etc/opencde ${DESTDIR}/etc/ 21 | else 22 | cp -r etc/opencde ${INSTDIR}/etc/ 23 | endif 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2010-2011 The OpenCDE Project. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are 4 | permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of 7 | conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list 10 | of conditions and the following disclaimer in the documentation and/or other materials 11 | provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE OPENCDE PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED 14 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 15 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OPENCDE PROJECT OR 16 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 17 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 18 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 19 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 20 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 21 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 | 23 | The views and conclusions contained in the software and documentation are those of the 24 | authors and should not be interpreted as representing official policies, either expressed 25 | or implied, of The OpenCDE Project. 26 | -------------------------------------------------------------------------------- /LICENSE.icons: -------------------------------------------------------------------------------- 1 | The following icons are distributed with and/or without modification, from icons 2 | taken from the "3dpixmaps" 1.21 packge and are Copyright 1999, Joerg Mertin. 3 | They are distributed under the GPL v2 license, a copy of which is provided in 4 | the file 'doc/LICENSE.GPL2'. The original copyright notice for the 3dpixmaps 5 | icon set is provided in the file 'doc/3dpixmaps-COPYRIGHT'. 6 | share/opencde/dtpanel/icons 7 | ODtfile.l.xpm 8 | Mail2.xpm 9 | Multimedia2.xpm 10 | Multimedia3.xpm 11 | TextEditor.xpm 12 | cli.xpm 13 | ODtwww.m.xpm 14 | ODtwww.l.xpm 15 | text_3d.xpm 16 | text_blue.3d.xpm 17 | xterm.next.xpm 18 | 19 | 20 | The following icons were created by Robert Tomsick 21 | (robert@tomsick.net) specifically for OpenCDE, and are hereby released into 22 | the public domain: 23 | share/opencde/dtpanel/icons 24 | ODtcal.l.xpm 25 | ODtcalc.m.xpm 26 | ODtclock.l.xpm 27 | ODtclock.m.xpm 28 | ODtctrlpanel.l.xpm 29 | ODthelp.l.xpm 30 | ODtterm.l.xpm 31 | ODtterm-root.l.xpm 32 | ODtterm.m.xpm 33 | ODtterm-root.m.xpm 34 | share/opencde/pixmaps/ 35 | Fplock.s.xpm 36 | Fpexit.s.xpm 37 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | include config.Mk 2 | INSTDIR=${DESTDIR}${PREFIX} 3 | CPPFLAGS += -D${FSH} 4 | 5 | all: 6 | mkdir -p bin 7 | cp script/* bin/ 8 | @${MAKE} -C src 9 | 10 | 11 | clean: 12 | @${MAKE} -C src clean 13 | 14 | # It's expected that the casual user will "make install" 15 | # These sub-targets are meant for packagers who need a modular system 16 | # otherwise install.sys and install.bin would need install.lib 17 | # and install.all 18 | # install.xm is for straight Motif binaries. 19 | #install: install.lib install.sys install.xm install.bin install.all 20 | 21 | install.dirs: 22 | mkdir -p ${INSTDIR}/bin 23 | mkdir -p ${INSTDIR}/lib${LIBSUFFIX} 24 | mkdir -p ${INSTDIR}/share 25 | # mkdir -p ${INSTDIR}/etc 26 | 27 | install.sys: install.dirs 28 | ${INST} -s -m 0755 bin/dtlock ${INSTDIR}/bin/ 29 | chmod u+s ${INSTDIR}/bin/dtlock 30 | ${INST} -s -m 0755 bin/dtlogin ${INSTDIR}/bin/ 31 | 32 | install.bin: install.dirs 33 | ${INST} -s -m 0755 bin/dtfile ${INSTDIR}/bin/ 34 | ${INST} -s -m 0755 bin/dtpanel ${INSTDIR}/bin/ 35 | ${INST} -s -m 0755 bin/dtrun ${INSTDIR}/bin/ 36 | ${INST} -s -m 0755 bin/dtsplash ${INSTDIR}/bin/ 37 | 38 | install.xm: install.dirs 39 | ${INST} -s -m 0755 bin/dtpad ${INSTDIR}/bin/ 40 | 41 | #install.all: install.dirs 42 | # ${INST} -m 0755 bin/dtsession ${INSTDIR}/bin/ 43 | # ${INST} -m 0755 bin/dtterm ${INSTDIR}/bin/ 44 | # ${INST} -m 0755 bin/dtwm ${INSTDIR}/bin/ 45 | # cp -r share/opencde ${INSTDIR}/share/ 46 | #ifeq ($(PREFIX),/usr) 47 | # sed -e 's|export LD_LIB.*PATH||' -i ${INSTDIR}/share/opencde/dtlogin/scripts/session 48 | #endif 49 | #ifeq ($(FSH),FSH) 50 | # cp -r etc/opencde ${DESTDIR}/etc/ 51 | #else 52 | # cp -r etc/opencde ${INSTDIR}/etc/ 53 | #endif 54 | 55 | install.lib: install.dirs 56 | cp -P lib/libmotifmm.so* ${INSTDIR}/lib${LIBSUFFIX}/ 57 | cp -P lib/libopencde.so* ${INSTDIR}/lib${LIBSUFFIX}/ 58 | 59 | uninstall: 60 | rm -r -f ${INSTDIR}/share/opencde 61 | rm -r -f ${INSTDIR}/etc/opencde 62 | rm -f ${INSTDIR}/bin/dtfile 63 | rm -f ${INSTDIR}/bin/dtlock 64 | rm -f ${INSTDIR}/bin/dtlogin 65 | rm -f ${INSTDIR}/bin/dtpad 66 | rm -f ${INSTDIR}/bin/dtpanel 67 | rm -f ${INSTDIR}/bin/dtrun 68 | rm -f ${INSTDIR}/bin/dtsession 69 | rm -f ${INSTDIR}/bin/dtsplash 70 | rm -f ${INSTDIR}/bin/dtterm 71 | rm -f ${INSTDIR}/bin/dtwm 72 | 73 | rm -f ${INSTDIR}/lib/libmotifmm.so* 74 | rm -f ${INSTDIR}/lib/libopencde.so* 75 | 76 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | OpenCDE 2 | ------- 3 | 4 | *** Compiling / Installing *** 5 | 6 | Before attempting to compile OpenCDE, you must edit the 'config.Mk' 7 | file. Ensure that the PLATFORM variable is set to your target platform 8 | and that the PREFIX variable points to the location in which you would 9 | like to install OpenCDE to. 10 | 11 | If using an operating system other than FreeBSD or Linux, you will 12 | likely need to modify the CFLAGS, CPPFLAGS and LDFLAGS to point to your 13 | build environment. 14 | 15 | OpenCDE requires no dependencies other than OpenMotif and it's required 16 | libraries. 17 | 18 | You can compile and install OpenCDE by issuing the following commands 19 | 20 | $ cd opencde 21 | $ make 22 | # make install 23 | 24 | If you are porting OpenCDE and require the build to be handled by some 25 | kind of build harness, you can use the following commands to prevent you 26 | from needing to edit config.Mk. 27 | 28 | $ cd opencde 29 | $ make PLATFORM=FREEBSD 30 | # make PREFIX=/usr/local install 31 | 32 | There are two versions of dtwm: the standard version is a wrapper script 33 | for mwm, while the other is a fork of mwm, which was at one point bundled 34 | with OpenCDE. 35 | The fork is currently available from https://github.com/idunham/dtwm.git 36 | if you prefer to use it; it is licensed under the OpenMotif license. 37 | 38 | Enjoy, 39 | 40 | The OpenCDE Consortium 41 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | 3 | 1) Add SONAME support to Makefile (remove LD_LIBRARY_PATH hack.) 4 | 2) Merge XmHTML into supporting library tree (with mghis's patch). 5 | 3) Start initial implementation of dthelp 6 | -------------------------------------------------------------------------------- /changelog: -------------------------------------------------------------------------------- 1 | Changes 2 | * (motifmm) Added support for accelerators. 3 | 4 | * (dtpanel) Individual desktop buttons can now have their 5 | color set. Bring on the AIX theme! 6 | 7 | * (dtfile) Status bar now reflects file information (hidden 8 | etc...). The icon title, and window title also change 9 | accordingly. 10 | 11 | * (dtfile) Now relative or absolute paths can be set to the 12 | desired pixmap icon images in 'filetypes.ini' 13 | 14 | * (dtfile) The user can now expore their filesystem through 15 | the use of double clicking on directories. 16 | 17 | * (dtpad) Fill the title bar with the name of the file loaded. 18 | 19 | * (dtpad) Make dtpad(1) accept a file name on the command line. 20 | 21 | * (dtpad) Improve handling of source text so that the text 22 | widgets share the same source. 23 | 24 | * (dtpad) Hookup the status bar line field to go to a line. 25 | 26 | * (dtpad) Use Motif's built-in line calculations rather than 27 | our manual version. 28 | 29 | * (dtfile) Completed double clicking on item (outputs selected 30 | item name to console) and now also runs the program specified 31 | in the .ini 32 | 33 | -------------------------------------------------------------------------------- /config.Mk: -------------------------------------------------------------------------------- 1 | # Available platforms:- FREEBSD LINUX OTHER 2 | PLATFORM=FREEBSD 3 | #FSH values: FSH "" 4 | FSH="" 5 | PREFIX=/usr/local 6 | LIBSUFFIX= 7 | 8 | INST=install -c 9 | CC=gcc 10 | CFLAGS=-Wall -Os -I/usr/X11R6/include -I/usr/local/include 11 | 12 | CPP=g++ 13 | CPPFLAGS=-Wall -Os -I/usr/X11R6/include -I/usr/local/include 14 | 15 | LDFLAGS=-L/usr/X11R6/lib -L/usr/local/lib 16 | 17 | -------------------------------------------------------------------------------- /debian/README.Debian: -------------------------------------------------------------------------------- 1 | opencde-0.6.2.0+cvs for Debian 2 | ------------------------------ 3 | 4 | 5 | 6 | -- unknown Sun, 11 Sep 2011 14:47:27 -0700 7 | -------------------------------------------------------------------------------- /debian/README.source: -------------------------------------------------------------------------------- 1 | opencde-0.6.2.0+cvs for Debian 2 | ------------------------------ 3 | 4 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | opencde (0.6.2.4-ibid) unstable; urgency=low 2 | 3 | * Update packaging to use my local git branch 4 | * Clear out most non-dfsg stuff 5 | 6 | -- Ibidem Sat, 12 Nov 2011 16:17:00 -0700 7 | 8 | opencde (0.6.2.0+cvs-20110820-1) unstable; urgency=low 9 | 10 | * Initial release (Closes: #nnnn) 11 | 12 | -- Ibidem Sun, 11 Sep 2011 14:47:27 -0700 13 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: opencde 2 | Section: nonfree/x11 3 | Priority: extra 4 | Maintainer: Ibidem 5 | Build-Depends: debhelper (>= 7.0.50~), libmotif-dev (>= 2.2) 6 | Standards-Version: 3.8.4 7 | Homepage: 8 | #Vcs-Git: git://git.debian.org/collab-maint/opencde-0.6.2.0+cvs.git 9 | #Vcs-Browser: http://git.debian.org/?p=collab-maint/opencde-0.6.2.0+cvs.git;a=summary 10 | 11 | Package: opencde 12 | Architecture: any 13 | Section: contrib/x11 14 | Depends: ${shlibs:Depends}, ${misc:Depends} 15 | Description: A BSD-licensed CDE clone 16 | OpenCDE is a clone of the Open Group's Common Desktop Environment, 17 | licensed under a two-clause BSD style license. At this stage it is 18 | incomplete, but fairly usable. dtpanel, dtpad, dtlock, dtwm, and 19 | dtfile (demo) are the most relevant parts. 20 | While dtlogin is included, no init file has been provided. 21 | # This includes a fork of the OpenMotif mwm (dtwm), which is not free. 22 | #Depends: opencde-shared, opencde-libs 23 | 24 | #Package: opencde-shared 25 | #Architecture: all 26 | #Section: contrib/x11 27 | #Description: OpenCDE shared files 28 | # This contains pixmaps, scripts, and configuration for OpenCDE. 29 | 30 | #Package: opencde-libs 31 | #Architecture: any 32 | #Depends: ${shlibs:Depends} 33 | #Section: contrib/libs 34 | #Description: libopencde and libmotifmm 35 | # libmotifmm is a C++ wrapper for Motif, roughly inspired by the Swing API. 36 | # libopencde provides other functions for OpenCDE. 37 | # Headers are located in the OpenCDE source, so these are solely depend- 38 | # encies for OpenCDE. 39 | # 40 | #Package: opencde-xm 41 | #Architecture: any 42 | #Depends: ${shlibs:Depends}, opencde-shared 43 | #Section: contrib/editors 44 | #Description: dtpad and miscellaneous other pure Motif programs 45 | # This contains those programs from OpenCDE which only use Motif. 46 | #Package: opencde-0.6.2.0+cvs-doc 47 | # 48 | #Architecture: all 49 | #Description: documentation for opencde-0.6.2.0+cvs 50 | # 51 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | This work was packaged for Debian by: 2 | 3 | unknown on Sun, 11 Sep 2011 14:47:27 -0700 4 | 5 | It was downloaded from: 6 | 7 | 8 | 9 | Upstream Author(s): 10 | 11 | 12 | 13 | 14 | Copyright: 15 | 16 | 17 | 18 | 19 | License: 20 | 21 | 22 | 23 | The Debian packaging is: 24 | 25 | Copyright (C) 2011 unknown 26 | 27 | # Please chose a license for your packaging work. If the program you package 28 | # uses a mainstream license, using the same license is the safest choice. 29 | # Please avoid to pick license terms that are more restrictive than the 30 | # packaged work, as it may make Debian's contributions unacceptable upstream. 31 | # If you just want it to be GPL version 3, leave the following lines in. 32 | 33 | and is licensed under the GPL version 3, 34 | see "/usr/share/common-licenses/GPL-3". 35 | 36 | # Please also look if there are files or directories which have a 37 | # different copyright/license attached and list them here. 38 | -------------------------------------------------------------------------------- /debian/docs: -------------------------------------------------------------------------------- 1 | README 2 | -------------------------------------------------------------------------------- /debian/files: -------------------------------------------------------------------------------- 1 | opencde_0.6.2.4-ibid_i386.deb contrib/x11 extra 2 | -------------------------------------------------------------------------------- /debian/menu.ex: -------------------------------------------------------------------------------- 1 | ?package(opencde-0.6.2.0+cvs):needs="X11|text|vc|wm" section="Applications/see-menu-manual"\ 2 | title="opencde-0.6.2.0+cvs" command="/usr/bin/opencde-0.6.2.0+cvs" 3 | -------------------------------------------------------------------------------- /debian/opencde.debhelper.log: -------------------------------------------------------------------------------- 1 | dh_installdirs 2 | dh_installchangelogs 3 | dh_install 4 | dh_prep 5 | dh_installdirs 6 | dh_installchangelogs 7 | dh_installdocs 8 | dh_strip 9 | dh_fixperms 10 | dh_installdeb 11 | dh_shlibdeps 12 | dh_gencontrol 13 | dh_md5sums 14 | dh_builddeb 15 | dh_prep 16 | dh_installdirs 17 | dh_installchangelogs 18 | dh_installdocs 19 | dh_strip 20 | dh_fixperms 21 | dh_installdeb 22 | dh_shlibdeps 23 | dh_gencontrol 24 | dh_md5sums 25 | dh_builddeb 26 | dh_prep 27 | dh_installdirs 28 | dh_installchangelogs 29 | dh_installdocs 30 | dh_strip 31 | dh_fixperms 32 | dh_installdeb 33 | dh_shlibdeps 34 | dh_gencontrol 35 | dh_md5sums 36 | dh_builddeb 37 | dh_builddeb 38 | -------------------------------------------------------------------------------- /debian/opencde.dirs: -------------------------------------------------------------------------------- 1 | /usr/share/doc 2 | /usr/bin 3 | /usr/etc 4 | -------------------------------------------------------------------------------- /debian/opencde.substvars: -------------------------------------------------------------------------------- 1 | shlibs:Depends=libc6 (>= 2.3), libgcc1 (>= 1:4.1.1), libice6 (>= 1:1.0.0), libmotif4, libsm6, libstdc++6 (>= 4.2.1), libx11-6, libxext6, libxp6, libxpm4, libxt6 2 | misc:Depends= 3 | -------------------------------------------------------------------------------- /debian/patches/series: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /debian/postinst.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for opencde-0.6.2.0+cvs 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `configure' 10 | # * `abort-upgrade' 11 | # * `abort-remove' `in-favour' 12 | # 13 | # * `abort-remove' 14 | # * `abort-deconfigure' `in-favour' 15 | # `removing' 16 | # 17 | # for details, see http://www.debian.org/doc/debian-policy/ or 18 | # the debian-policy package 19 | 20 | 21 | case "$1" in 22 | configure) 23 | ;; 24 | 25 | abort-upgrade|abort-remove|abort-deconfigure) 26 | ;; 27 | 28 | *) 29 | echo "postinst called with unknown argument \`$1'" >&2 30 | exit 1 31 | ;; 32 | esac 33 | 34 | # dh_installdeb will replace this with shell code automatically 35 | # generated by other debhelper scripts. 36 | 37 | #DEBHELPER# 38 | 39 | exit 0 40 | -------------------------------------------------------------------------------- /debian/postrm.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postrm script for opencde-0.6.2.0+cvs 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `purge' 11 | # * `upgrade' 12 | # * `failed-upgrade' 13 | # * `abort-install' 14 | # * `abort-install' 15 | # * `abort-upgrade' 16 | # * `disappear' 17 | # 18 | # for details, see http://www.debian.org/doc/debian-policy/ or 19 | # the debian-policy package 20 | 21 | 22 | case "$1" in 23 | purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) 24 | ;; 25 | 26 | *) 27 | echo "postrm called with unknown argument \`$1'" >&2 28 | exit 1 29 | ;; 30 | esac 31 | 32 | # dh_installdeb will replace this with shell code automatically 33 | # generated by other debhelper scripts. 34 | 35 | #DEBHELPER# 36 | 37 | exit 0 38 | -------------------------------------------------------------------------------- /debian/preinst.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # preinst script for opencde-0.6.2.0+cvs 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `install' 10 | # * `install' 11 | # * `upgrade' 12 | # * `abort-upgrade' 13 | # for details, see http://www.debian.org/doc/debian-policy/ or 14 | # the debian-policy package 15 | 16 | 17 | case "$1" in 18 | install|upgrade) 19 | ;; 20 | 21 | abort-upgrade) 22 | ;; 23 | 24 | *) 25 | echo "preinst called with unknown argument \`$1'" >&2 26 | exit 1 27 | ;; 28 | esac 29 | 30 | # dh_installdeb will replace this with shell code automatically 31 | # generated by other debhelper scripts. 32 | 33 | #DEBHELPER# 34 | 35 | exit 0 36 | -------------------------------------------------------------------------------- /debian/prerm.ex: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # prerm script for opencde-0.6.2.0+cvs 3 | # 4 | # see: dh_installdeb(1) 5 | 6 | set -e 7 | 8 | # summary of how this script can be called: 9 | # * `remove' 10 | # * `upgrade' 11 | # * `failed-upgrade' 12 | # * `remove' `in-favour' 13 | # * `deconfigure' `in-favour' 14 | # `removing' 15 | # 16 | # for details, see http://www.debian.org/doc/debian-policy/ or 17 | # the debian-policy package 18 | 19 | 20 | case "$1" in 21 | remove|upgrade|deconfigure) 22 | ;; 23 | 24 | failed-upgrade) 25 | ;; 26 | 27 | *) 28 | echo "prerm called with unknown argument \`$1'" >&2 29 | exit 1 30 | ;; 31 | esac 32 | 33 | # dh_installdeb will replace this with shell code automatically 34 | # generated by other debhelper scripts. 35 | 36 | #DEBHELPER# 37 | 38 | exit 0 39 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | #debian/rules file written by Isaac Dunham (Ibidem) 3 | # just from the Policy 4 | clean: 5 | make clean 6 | rm -rf debian/files debian/opencde/ build binary 7 | 8 | build: 9 | #any magic to configure it goes here 10 | make -C src PLATFORM=LINUX PREFIX=/usr 11 | #touch build 12 | 13 | binary-indep: 14 | # use this if you use a separate package for scripts/configuration 15 | # must be present, may do nothing 16 | 17 | binary-arch: build 18 | dh_testdir 19 | dh_testroot 20 | dh_prep 21 | dh_installdirs 22 | make install.dirs PREFIX=/usr DESTDIR=debian/opencde 23 | make install.lib install.xm install.sys install.bin install.all PREFIX=/usr DESTDIR=debian/opencde 24 | #mkdir -p debian/opencde/usr/share 25 | #cp -r ./bin debian/opencde/usr/ 26 | #NOTE that some stuff should be in /etc, not /usr/etc 27 | #cp -r ./share/* debian/opencde/usr/share/ 28 | dh_installchangelogs 29 | dh_installdocs 30 | dh_strip 31 | dh_fixperms 32 | dh_installdeb 33 | dh_shlibdeps 34 | dh_gencontrol 35 | dh_md5sums 36 | dh_builddeb 37 | 38 | binary: build binary-arch binary-indep 39 | #touch binary 40 | 41 | binary-xm: build 42 | make install.dirs install.xm DESTDIR=debian/opencde-xm PREFIX=/usr 43 | .PHONY: clean build clean 44 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /debian/watch.ex: -------------------------------------------------------------------------------- 1 | # Example watch control file for uscan 2 | # Rename this file to "watch" and then you can run the "uscan" command 3 | # to check for upstream updates and more. 4 | # See uscan(1) for format 5 | 6 | # Compulsory line, this is a version 3 file 7 | version=3 8 | 9 | # Uncomment to examine a Webpage 10 | # 11 | #http://www.example.com/downloads.php opencde-0.6.2.0+cvs-(.*)\.tar\.gz 12 | 13 | # Uncomment to examine a Webserver directory 14 | #http://www.example.com/pub/opencde-0.6.2.0+cvs-(.*)\.tar\.gz 15 | 16 | # Uncommment to examine a FTP server 17 | #ftp://ftp.example.com/pub/opencde-0.6.2.0+cvs-(.*)\.tar\.gz debian uupdate 18 | 19 | # Uncomment to find new files on sourceforge, for devscripts >= 2.9 20 | # http://sf.net/opencde-0.6.2.0+cvs/opencde-0.6.2.0+cvs-(.*)\.tar\.gz 21 | 22 | # Uncomment to find new files on GooglePages 23 | # http://example.googlepages.com/foo.html opencde-0.6.2.0+cvs-(.*)\.tar\.gz 24 | -------------------------------------------------------------------------------- /doc/3dpixmaps-COPYRIGHT: -------------------------------------------------------------------------------- 1 | These icons are Copyright 1999, Joerg Mertin 2 | 3 | These icons are free; you can redistribute them and/or modify them 4 | under the terms of the GNU General Public License as published by 5 | the Free Software Foundation; either version 2 of the License, or 6 | (at your option) any later version. 7 | 8 | These icons are distributed in the hope that they will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software 15 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 16 | -------------------------------------------------------------------------------- /doc/ini: -------------------------------------------------------------------------------- 1 | 2 | [section] 3 | variable=value 4 | 5 | -------------------------------------------------------------------------------- /doc/manifesto/Makefile: -------------------------------------------------------------------------------- 1 | .SUFFIXES: .pdf .tex 2 | 3 | .tex.pdf: 4 | xetex -papersize=letter $< 5 | -------------------------------------------------------------------------------- /doc/manifesto/manifesto.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/manifesto/manifesto.pdf -------------------------------------------------------------------------------- /doc/motifmm.dia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/motifmm.dia -------------------------------------------------------------------------------- /doc/screenshots/dtlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/screenshots/dtlock.png -------------------------------------------------------------------------------- /doc/screenshots/dtlogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/screenshots/dtlogin.png -------------------------------------------------------------------------------- /doc/screenshots/dtpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/screenshots/dtpad.png -------------------------------------------------------------------------------- /doc/screenshots/dtpad2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/screenshots/dtpad2.png -------------------------------------------------------------------------------- /doc/screenshots/dtsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/doc/screenshots/dtsplash.png -------------------------------------------------------------------------------- /etc/opencde/dtfile/filetypes.ini: -------------------------------------------------------------------------------- 1 | [dirup] 2 | pixmap=Dtdirup.m.pm 3 | [folder] 4 | pixmap=DtdirB.m.pm 5 | [txt] 6 | pixmap=Dtdata.m.pm 7 | command=$OPENCDE_PREFIX/bin/dtpad 8 | [cpp] 9 | pixmap=DtC++.m.pm 10 | command=$OPENCDE_PREFIX/bin/dtpad 11 | 12 | -------------------------------------------------------------------------------- /etc/opencde/dtpanel/menus.ini: -------------------------------------------------------------------------------- 1 | 2 | command=xterm 3 | [Terminal] 4 | pixmap=ODtterm.m.xpm 5 | command=xterm 6 | [Calculator] 7 | pixmap=ODtcalc.m.xpm 8 | command=xcalc 9 | [Clock] 10 | pixmap=ODtclock.m.xpm 11 | command=xclock 12 | 13 | 14 | pixmap=ODtfile.l.xpm 15 | 16 | pixmap=ODtfile.l.xpm 17 | 18 | pixmap=ODtwww.l.xpm 19 | command=firefox 20 | [Mozilla Firefox] 21 | pixmap=ODtwww.m.xpm 22 | command=firefox 23 | 24 | [One] 25 | backdrop=blackmarble.xpm 26 | [Two] 27 | backdrop=blue_squares.xpm 28 | [Three] 29 | backdrop=boxed_layer.xpm 30 | [Four] 31 | backdrop=metal_holes.xpm 32 | 33 | pixmap=Multimedia2.xpm 34 | 35 | pixmap=ODtterm.l.xpm 36 | command=xterm 37 | [Terminal] 38 | pixmap=ODtterm.m.xpm 39 | command=xterm 40 | [Root Terminal] 41 | pixmap=ODtterm-root.m.xpm 42 | command=xterm -e su - 43 | 44 | pixmap=ODtStyle.l.xpm 45 | command=editres 46 | 47 | pixmap=ODthelp.l.xpm 48 | 49 | pixmap=ODttrsh.l.pm 50 | -------------------------------------------------------------------------------- /lib/README: -------------------------------------------------------------------------------- 1 | This directory is intentionally left empty. 2 | 3 | Libraries (libmotifmm, libopencde) will be placed here when built. 4 | -------------------------------------------------------------------------------- /script/dtsession: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | DTSESSION=`which $0` 4 | BIN=`dirname $DTSESSION` 5 | PREFIX=`dirname $BIN` 6 | export OPENCDE_PREFIX=$PREFIX 7 | 8 | if [ -z "$LD_LIBRARY_PATH" ]; then 9 | export LD_LIBRARY_PATH="$OPENCDE_PREFIX/lib" 10 | else 11 | 12 | case "$LD_LIBRARY_PATH" in 13 | *"$OPENCDE_PREFIX/lib"*) ;; 14 | *) export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$OPENCDE_PREFIX/lib" ;; 15 | esac 16 | fi 17 | 18 | export XAPPLRESDIR="$OPENCDE_PREFIX/share/opencde/app-defaults/" 19 | 20 | $OPENCDE_PREFIX/bin/dtsplash -s 2 21 | 22 | $OPENCDE_PREFIX/bin/dtwm & 23 | xsetroot -solid Gray 24 | xsetroot -cursor_name left_ptr 25 | $OPENCDE_PREFIX/bin/dtpanel 26 | 27 | -------------------------------------------------------------------------------- /script/dtterm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | CWD="`pwd`" 4 | BIN="`which $0`" 5 | BINDIR="`dirname $BIN`" 6 | PREFIX="`dirname $BINDIR`" 7 | cd "$CWD" 8 | 9 | XFILESEARCHPATH=$PREFIX/share/opencde/app-defaults/Dtterm xterm -name Dtterm 10 | 11 | -------------------------------------------------------------------------------- /script/dtwm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | CWD="`pwd`" 4 | BIN="`which $0`" 5 | BINDIR="`dirname $BIN`" 6 | PREFIX="`dirname $BINDIR`" 7 | cd "$CWD" 8 | 9 | if [ -f ~/.dtwmrc ]; then 10 | CONFIG=~/.dtwmrc 11 | else 12 | CONFIG=$PREFIX/share/opencde/dtwm/dtwmrc 13 | fi 14 | 15 | XFILESEARCHPATH=$PREFIX/share/opencde/app-defaults/Dtwm mwm -name Dtwm \ 16 | -xrm "Dtwm*configFile: $CONFIG" 17 | 18 | -------------------------------------------------------------------------------- /share/opencde/app-defaults/Dtfile: -------------------------------------------------------------------------------- 1 | Dtfile*shadowThickness: 1 2 | Dtfile*highlightThickness: 2 3 | Dtfile*highlightColor: #B24D7A 4 | Dtfile*background: #AEB2C3 5 | Dtfile*fileView.background: #9397a5 6 | Dtfile*fontList: -*-helvetica-*-r-*-*-12-*-*-*-*-*-*-* 7 | 8 | -------------------------------------------------------------------------------- /share/opencde/app-defaults/Dtpanel: -------------------------------------------------------------------------------- 1 | Dtpanel*highlightColor: #B24D7A 2 | Dtpanel*background: #AEB2C3 3 | #*Dtpanel*panelWindow.background: Orange 4 | Dtpanel*exitDialog*fontList: -*-helvetica-*-r-*-*-14-*-*-*-*-*-*-* 5 | Dtpanel*desktopsPanel*desktopButton1.background: #6366AB 6 | Dtpanel*desktopsPanel*desktopButton2.background: #6366AB 7 | Dtpanel*desktopsPanel*desktopButton3.background: #6366AB 8 | Dtpanel*desktopsPanel*desktopButton4.background: #6366AB 9 | Dtpanel*desktopsPanel*fontList: -*-helvetica-*-r-*-*-14-*-*-*-*-*-*-* 10 | Dtpanel*menuWindow*fontList: -*-helvetica-*-r-*-*-13-*-*-*-*-*-*-* 11 | Dtpanel*menuWindow*foreground: White 12 | 13 | -------------------------------------------------------------------------------- /share/opencde/app-defaults/Dtterm: -------------------------------------------------------------------------------- 1 | Dtterm*font: -*-fixed-*-*-*-*-*-140-*-*-*-*-*-* 2 | Dtterm*title: Terminal 3 | 4 | -------------------------------------------------------------------------------- /share/opencde/app-defaults/Dtwm: -------------------------------------------------------------------------------- 1 | Dtwm*highlightColor: #B24D7A 2 | Dtwm*highlightThickness: 1 3 | Dtwm*activeBackground: #B24D7A 4 | Dtwm*background: #AEB2C3 5 | Dtwm*title*fontList: -*-helvetica-bold-r-*-*-17-*-*-*-*-*-*-* 6 | Dtwm*menu*fontList: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* 7 | Dtwm*icon*fontList: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* 8 | Dtwm*resizeBorderWidth: 6 9 | Dtwm*moveOpaque: True 10 | Dtwm*iconPlacement: Top Left 11 | Dtwm*iconAutoPlace: True 12 | 13 | -------------------------------------------------------------------------------- /share/opencde/app-defaults/Mwm: -------------------------------------------------------------------------------- 1 | *highlightColor: #B24D7A 2 | *highlightThickness: 1 3 | *activeBackground: #B24D7A 4 | *background: #AEB2C3 5 | *title*fontList: -*-helvetica-bold-r-*-*-17-*-*-*-*-*-*-* 6 | *menu*fontList: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* 7 | *icon*fontList: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* 8 | *resizeBorderWidth: 6 9 | *moveOpaque: True 10 | *iconPlacement: Top Left 11 | *iconAutoPlace: True 12 | 13 | -------------------------------------------------------------------------------- /share/opencde/dtlogin/scripts/login: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ -z $1 ]; then 4 | echo "Error: No username specified" 5 | exit 1 6 | fi 7 | 8 | su -l $1 -c $OPENCDE_PREFIX/share/opencde/dtlogin/scripts/session 9 | 10 | pkill -SIGHUP X 11 | pkill -HUP X 12 | pkill -SIGHUP Xorg 13 | pkill -HUP Xorg 14 | 15 | -------------------------------------------------------------------------------- /share/opencde/dtlogin/scripts/session: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SESSION=`which $0` 4 | SCRIPTS=`dirname $SESSION` 5 | PREFIX=`dirname $SCRIPTS` 6 | export OPENCDE_PREFIX=$PREFIX 7 | export LD_LIBRARY_PATH=$OPENCDE_PREFIX/lib:$LD_LIBRARY_PATH 8 | export DISPLAY=:0 9 | 10 | if [ -f $HOME/.xsession ]; then 11 | $HOME/.xsession 12 | else 13 | $OPENCDE_PREFIX/bin/dtsession 14 | fi 15 | 16 | -------------------------------------------------------------------------------- /share/opencde/dtlogin/scripts/xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | $OPENCDE_PREFIX/bin/dtlogin -internal_dont_specify 4 | 5 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/Mail2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Mail2_xpm[] = { 3 | "56 46 22 1", 4 | " c None", 5 | ". c #9E9A9E", 6 | "+ c #6986BE", 7 | "@ c #AEAAAE", 8 | "# c #010101", 9 | "$ c #BEBABE", 10 | "% c #717986", 11 | "& c #C7BAC7", 12 | "* c #FFFFFF", 13 | "= c #867986", 14 | "- c #AEB2CF", 15 | "; c #7992B6", 16 | "> c #000014", 17 | ", c #BEC3CF", 18 | "' c #386DA6", 19 | ") c #AEAEB6", 20 | "! c #A69EA6", 21 | "~ c #9696AE", 22 | "{ c #F7B2AE", 23 | "] c #DFBA8E", 24 | "^ c #79869E", 25 | "/ c #B6AEB6", 26 | " ", 27 | " ", 28 | " ", 29 | " .+... ", 30 | " ++@+#+.+#+ ", 31 | " ++$++++$.++# ", 32 | " %+&+.$$$$#.++# ", 33 | " ++++.$*$$$.+#.++ ", 34 | " ++=-&**$$$$$+.#+# ", 35 | " +-+*****$$$++++#+# ", 36 | " ++*$***$$$.+++++## ", 37 | " +$+$*$*$*$.&.;++#+# ", 38 | " %&%+.$$$$$$.$%%>+## ", 39 | " *# .,&++@@@$$.$.-+.#+# ", 40 | " $***# +@$++++.$.$..'@%+## ", 41 | " @*****# .))++++%+$!~%@+>+## ", 42 | " $*******# @ .@.+++++..+!+>+##+ ", 43 | " @***$****$#$*# +.@!++++.+!+++### ", 44 | " $***$*$**$$$**$ .+..+++!+.+#+###+ ", 45 | " @***$*$*$$$*****# ++!++!.++#+#### ", 46 | " $***$*$$$$****$**$+ +#+++%+#+#### ", 47 | " @***$*$$$****$$****# ++#+>++###+ ", 48 | " @***$*$$****$$**$$**$+ +#+###+ ", 49 | " @@*****$****$$**$$*****# ", 50 | " $$$$$$$$$$$$$$$$$$$$$$$$$$@ ", 51 | " ****************************@ ", 52 | " **$*$*$*********************+@ ", 53 | " **$$*$*****************@{@**#+ ", 54 | " **$*$*$****************@]@**#+ ", 55 | " ***********************^{{**#+ ", 56 | " ***********************/{;**#+ ", 57 | " ****************************#+ ", 58 | " ***********%+.$+$$**********#+ ", 59 | " ****************************#+ ", 60 | " ***********+.$+$$%,%)$******#+ ", 61 | " ****************************#+ ", 62 | " ***********+.$+.$+.$$*******#+ ", 63 | " ****************************#+ ", 64 | " ****************************#+ ", 65 | " ****************************#+ ", 66 | " ++###########################+ ", 67 | " +++++++++++++++++++++++++++++ ", 68 | " ", 69 | " ", 70 | " ", 71 | " "}; 72 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/Multimedia2.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 26 1", 4 | " c #FFFFFAFAFFFF", 5 | ". c #BEBEB6B6BEBE", 6 | "X c #000000001111", 7 | "o c #C7C7BABAC7C7", 8 | "O c #AEAEA6A6AEAE", 9 | "+ c #969696969696", 10 | "@ c #080804040808", 11 | "# c #DFDFBABA8E8E", 12 | "$ c #B6B6AEAEB6B6", 13 | "% c #AEAEA6A67171", 14 | "& c #BEBEC3C3BEBE", 15 | "* c #A6A69E9EA6A6", 16 | "= c #717179798686", 17 | "- c #96969696AEAE", 18 | "; c #F7F7B2B2AEAE", 19 | ": c #69698686BEBE", 20 | "> c #AEAEAEAEB6B6", 21 | ", c #BEBEC3C3CFCF", 22 | "< c #CFCFC7C7CFCF", 23 | "1 c #79799292B6B6", 24 | "2 c #DFDFAEAE6969", 25 | "3 c #D7D7D3D3D7D7", 26 | "4 c #AEAE61616161", 27 | "5 c #717175757171", 28 | "6 c #AEAEB2B2CFCF", 29 | "7 c #EFEFF3F3F7F7", 30 | " .", 31 | " ......................................................X", 32 | " .o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o..X", 33 | " .....................................................oX", 34 | " O.o.O .o.Oo.oO..oO.o.Oo.oO..oO.o.Oo..O.X", 35 | " ..... O.O.O.O.O.O.O.+X.......o...........o.........o..X", 36 | " OoO.O .+@@+O@#$O.%&O*XO.O.O.O.OoO.OoO.O.O.OoO.OoO.O.OoX", 37 | " ..... O@..@.@&O$#.#.+X..o.o.oO...o...Oo..o...O....o..OX", 38 | " O.O.* .@.oXO@X@O$+XX+XO.O.O.O.O.O.O.O.O.O.OoO.$.O.O.O.X", 39 | " ..oO. OXXX@.X..@O@O.+X.Oo..O..oO.o.O.o.O...O...Oo.oO..X", 40 | " O.O.O .@$.XO@o.X.@.O+@O.O.O.O.O.O.OoO.O.OoO.OoO.O.O.OoX", 41 | " .O... O@Oo@.XX@+O*@@+XoO.Oo.oO.O.O...OoO.O.o.O.O.O.o.OX", 42 | " O.O.O .=oO=$+*+O.OO++@O.O.O.O.$.OoO.O.O.O.O.O.O.O.O.O.X", 43 | " .OoO. +-*+-++ ..O.O.O.O.OoO.O.$.OoO.O.OX", 44 | " O.O.O.XXXXXXX .;.;.;:;.;.;.;.XO.O.OoO.O.O.O.O.O.O.OoO.X", 45 | " OO.OOO.O::::= ;.;.;;X.;.;.;.+XoOOO.OOOoOOOoOOOoOOO.OOOX", 46 | " O.O.O.O.O.O.> .;.;:;X;.;:;o;+XO.OoO.O.O.O.O.O.O.O.O.O.X", 47 | " OOOOOOOOOOO$O ;.;.X;X;:;X.;.+XOOOOOOOOOOOOOOOOOOOOOOOOX", 48 | " O.O.O.O.O.O.O .=XXX;X;X;X;X:+XO.O.O.O.O.OoO.OoO.OoO.O.X", 49 | " OOOOOOOOOOOO$ ;,;X;X;X;X;X;.+XOOOOOOOOOOOOOOOOOOOOOOOOX", 50 | " OOOoOOOoOOO.O .;.:;X;X;:;:.;+XO.OOO.OOO.OOO.OOO.OOO.OOX", 51 | " OOOOOOOOOOOOO ;.;<;X;1;.;.;.+XOOOOOOOOOOOOOOOOOOOOOOOOX", 52 | " OOOOOOOOOOOOO ++++O*** .OOOOOOOOOOOOOOX", 53 | " OOOOOOOOOOOOO.XXXXXXXX .O.O.O.O.O.O.O.+XOOOOOOOOOOOOOOX", 54 | " +OOO+OOO+OOO+OOO:::::: O.%&O@@@+.O.O.O+X+OOO+OOO+OOO+OX", 55 | " OOOOOOOOOOOOOOOOOOOOOO $#.OX $XX%o%.2.+X:OOOOOOOOOOOOOX", 56 | " OO+O+O+OOO+O+O+OOO+O+O O.O<@+=XX3O.OoO+@:O+O+O+OOO+O+OX", 57 | " OOOOOOOOOOOOOOOOOOOOOO O.#+X:O+O+O+O+O+O+OX", 59 | " OOOOOOOOOOOOOOOOOOOOO+ .#.O.O.O++-4 c #717179798686", 21 | ", c #96969696AEAE", 22 | "< c #717175757171", 23 | "1 c #AEAEAEAEB6B6", 24 | "2 c #EFEFF3F3F7F7", 25 | "3 c #BEBEC3C3CFCF", 26 | " .", 27 | " ......................................................X", 28 | " .o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o..X", 29 | " ....................................................o.X", 30 | " O.o.Oo.oO..oO..oO..oO..oO..oO..oO..oO..oO..oO..oO...O.X", 31 | " .........o.......o.......o.......o.......o.........o..X", 32 | " OoO. .oO.O.O.OoO. .O.O.X", 33 | " .... .+.+.+.+.+.+.+@XO.o...o.O.. .O.O.O.O.O.O.O.@X..oOX", 34 | " O.O. +.+o+XXXXXXo+.@X@O.O.O.O.O. O.O.@###@.O.O.$%X@.O.X", 35 | " .o.O o+.++X+o+.X+.+@X&.O..oO.o.* =-;$# ;X#-.O$O.@X&O..X", 36 | " O.O. +.+o+XXXXXX.+o@X&O.OoO.O.O. O:O;X*>XX:O.O.O@X&.OoX", 37 | " .Oo. o+.++X++++X+.+@X&oO.O...O.O .O.$XXXX#O$O:-.@X&..OX", 38 | " O.O. +.+++X++&XX.+.@X&O.O.O.OoO. -o-:%XXX,oO.Oo$@X&.O.X", 39 | " .O.O .++&XX:+XX&+o+@X&oO.OoO.O.* .O.O.O.O@@OO.O;@X&OoOX", 40 | " O.O. +.+XX&+.+.+.+.@X&O.O.O.O.O. O.$;O:OO<*>@<:O@X&.O.X", 41 | " OOoO @@O@*@*@O@O@@@@X&oOOO.OOO.O @*@@O@@,@,@,*@*@X&OOOX", 42 | " O.O..XXXXXXXXXXXXXXXX&O.OoO.OoO..#XXX###XXXXXX#XXX&.O.X", 43 | " OOOOOOO&&&&&&&&&&&&&&&OOOOOOOOOOO;O&&&&&&&&&&&&&&&&OOOX", 44 | " O.O.O.O.O.O.O.O.O.1.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.O.X", 45 | " OOOOOOOOOOOOOO1OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX", 46 | " OOOoO OOO O.OOO.OOO.OOO.OOO OOO OOO.OOO.OOO.OOO.OOO.OOX", 47 | " OOOOO O & &O & &O &O &O O & & &O &O &OOOOOX", 48 | " OOOOO . . & &O & &OO &OO &O . . & &OOO >1 & & &O &OOOOX", 49 | " OOOOO & & & &O & &OO &OO &O & & & &O &1 & & &OOOOX", 50 | " @OOOO &O& &2&@ &2&1O &OO &O >1& & &OO@ &O > & &O &1O@OX", 51 | " OOOOO &O12&1 &O & &OO &O &1O2& & &1 & &O &OOOOX", 52 | " OO@O@O@OOO@O@1@1OO@O@O@OOO@O@O@O1O@O@O@OOO@O@O@OOO@O@OX", 53 | " OOOOOOOOOOOOOOOOOOOOO1OOOOO1OOOOOOOOO1OOO1OO1OO1OOOOOOX", 54 | " @O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@O@OX", 55 | " OOOO .OOOOOOOOOOOO .OOOOX", 56 | " @O@O .....O..O.O.O.@XO@O@O@O@O@O@ .+.+.+&+.+.+.+.X@O@OX", 57 | " O@OO .@XX@.#O;$=-.O@X@OOO@OOO@OOO +.+.++X++.+.+.@X@OO@X", 58 | " @O@O O#..X.#..;..;.@X&@O@O@O@O@O@ .+o+&+X+o+&+o+@X&O@OX", 59 | " O@O@ .X..X.X#X*.*##@X&O@O@O@O@O@O ++++X+X+&+X+++@X&@O@X", 60 | " @O@O O#XXX.Xo.X.X..@X&@O@O@O@O@O@ .&XXX+X+X+X+X&*X&O@OX", 61 | " @@O@ .X..X.X..X.X..@X&O@@@O@@@O@@ +++X+X+X+X+X+.@X&@@@X", 62 | " @O@O O#..X.XXX@.@XX@X&@O@O@O@O@O@ .++&+X+X+&+&++*X&O@OX", 63 | " @@@@ ;$.O.O...O.O..@X&@@@@@@@@@@@ +.+3+&+X+3+:+.@X&@@@X", 64 | " @O@1 @@@@@@@@@@@@@@@X&@O@O@O@O@O@ O@O@O@,X1@O@O@@X&O@OX", 65 | " @@@@.XX#X##X#X####XXX&@@@@@@@@@@@.XXXXXXXXXXXXXXXX&@@@X", 66 | " @@@O@@@&&&&&&&&&&&&&&&@O@@@O@@@O@@@O&&&&&&&&&&&&&&&1@@X", 67 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 68 | " @O@@@@@@@O@@@@@@@O@@@@@@@O@@@@@@@O@@@@@@@1@@@@@@@O@@@@X", 69 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 70 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 71 | ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 72 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtcal.l.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * cal_xpm[] = { 3 | "56 56 7 1", 4 | " c None", 5 | ". c #CCCCCC", 6 | "+ c #999999", 7 | "@ c #333333", 8 | "# c #FFFFFF", 9 | "$ c #666666", 10 | "% c #7A7A7A", 11 | " ", 12 | " ", 13 | " ..+ ..+ ", 14 | " @@@@@@.@+@@@@@@@@@@@@@@@@@@@@.@+@@@@@ ", 15 | " @......++.....................++....@ ", 16 | " @......@+.....................@+....@ ", 17 | " @#.#.$.@+@..................$.@+@..+@ ", 18 | " @#.#.$.@+@..................$.@+@..+@ ", 19 | " @#.#.$.++@..................$.++@..+@ ", 20 | " @###..$@@....................$@@...+@ ", 21 | " @#.#...............................+@ ", 22 | " @###...............................+@ ", 23 | " @#.#...............................+@ ", 24 | " @###...............................+@ ", 25 | " @#.#...............................+@ ", 26 | " @###...............................+@ ", 27 | " @#.#...............................+@ ", 28 | " @###...............................+@ ", 29 | " @#.#...............................+@ ", 30 | " @###...............................+@ ", 31 | " @#.#...............................+@ ", 32 | " @###...............................+@ ", 33 | " @#.#...............................+@ ", 34 | " @###...............................+@ ", 35 | " @#.#...............................+@ ", 36 | " @###...............................+@ ", 37 | " @#.#...............................+@ ", 38 | " @###...............................+@ ", 39 | " @#.#...............................+@ ", 40 | " @###...............................+@ ", 41 | " @#.#...............................+@ ", 42 | " @###...............................+@ ", 43 | " @#.#...............................+@ ", 44 | " @###...............................+@ ", 45 | " @#.#...............................+@ ", 46 | " @###...............................+@ ", 47 | " @#.#...............................+@ ", 48 | " @###...............................+@ ", 49 | " @#.#...............................+@ ", 50 | " @###...............................+@ ", 51 | " @#.#...............................+@ ", 52 | " @###...............................+@ ", 53 | " @#.#......................#########+@ ", 54 | " @###......................#.......%+@ ", 55 | " @#.#......................#......%++@ ", 56 | " @###......................#.....%+++@ ", 57 | " @#.#......................#....%++++@ ", 58 | " @###......................#...%+++++@ ", 59 | " @#.#......................#..%++++++@ ", 60 | " @###......................#.%+++++++@ ", 61 | " @#.########################%++++++++@ ", 62 | " @##.++++++++++++++++++++++++++++++++@ ", 63 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", 64 | " ", 65 | " ", 66 | " "}; 67 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtcalc.m.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * calculator_m_xpm[] = { 3 | "32 32 10 1", 4 | " c None", 5 | ". c #000000", 6 | "+ c #CCCCCC", 7 | "@ c #999999", 8 | "# c #FFFACD", 9 | "$ c #FFF68F", 10 | "% c #8B5A00", 11 | "& c #FFFFFF", 12 | "* c #333333", 13 | "= c #666666", 14 | " ", 15 | " ", 16 | " .................. ", 17 | " .++++++++++++++++++. ", 18 | " .+++++++++++++++++@. ", 19 | " .+................@. ", 20 | " .+.##############.@. ", 21 | " .+.#######.#.#..#.@. ", 22 | " .+.#######...#$%#.@. ", 23 | " .+.#########.#..#.@. ", 24 | " .+.##############.@. ", 25 | " .+................@. ", 26 | " .+++++++++++++++++@. ", 27 | " .+&*@+&=@+&==+&==+@. ", 28 | " .+*+*+*+*+*+*+*+*+@. ", 29 | " .+=**+=**+=**+=**+@. ", 30 | " .+++++++++++++++++@. ", 31 | " .+&*=+&*=+&*=+&*=+@. ", 32 | " .+*+*+*+*+*+*+*+*+@. ", 33 | " .+=**+=**+=**+=**+@. ", 34 | " .+++++++++++++++++@. ", 35 | " .+&*=+&*=+&*=+&*=+@. ", 36 | " .+*+*+*+*+*+*+*&+*@. ", 37 | " .+=**+=**+=**+*++*@. ", 38 | " .+++++++++++++*+@*@. ", 39 | " .+&*=+&*=+&*=+*@@*@. ", 40 | " .+*+*+*+*+*+*+*++*@. ", 41 | " .+=**+=**+=**+=**+@. ", 42 | " .+@@@@@@@@@@@@@@@@@. ", 43 | " .................. ", 44 | " ", 45 | " "}; 46 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtclock.l.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * clock_xpm[] = { 3 | "48 48 6 1", 4 | " c None", 5 | ". c #787878", 6 | "+ c #000000", 7 | "@ c #FFFFFF", 8 | "# c #CCCCCC", 9 | "$ c #999999", 10 | " ", 11 | " .+++++++++++++++++++++++++++++++++++++++++. ", 12 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+. ", 13 | " +@#########################################$+$#", 14 | " +@#########################################$+$$", 15 | " +@#########################################$+$$", 16 | " +@###.+++++++++++++++++++++++++++++++++.###$+$$", 17 | " +@###+.$$$$$$$$$$$$$$#+$$$$$$$$$$$$$$$$+###$+$$", 18 | " +@###+$#$#$#$#$#$#$#$#+$$#$#$#$#$#$#$#$+###$+$$", 19 | " +@###+$$#$#$#$#$#$#$##+$#$#$#$#$#$#$#$#+###$+$$", 20 | " +@###+$#$#$#$#$+$#$#$#$#$#$#$+$#$#$#$#$+###$+$$", 21 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 22 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 23 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 24 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 25 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 26 | " +@###+$#$+$#$#$#$#$#$#$#$#$#$#$#$#$+$#$+###$+$$", 27 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 28 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 29 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 30 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 31 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 32 | " +@###+####$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 33 | " +@###++++$#$#$#$#$#$#$#$#$#$#$#$#$#$++++###$+$$", 34 | " +@###+$$$$$#$#$#$#$#$#$#$#$#$#$#$#$#$$$+###$+$$", 35 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 36 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 37 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 38 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 39 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 40 | " +@###+$#$+$#$#$#$#$#$#$#$#$#$#$#$#$+$#$+###$+$$", 41 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 42 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 43 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 44 | " +@###+$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$+###$+$$", 45 | " +@###+$$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#$#+###$+$$", 46 | " +@###+$#$#$#$#$+$#$#$#$#$#$#$+$#$#$#$#$+###$+$$", 47 | " +@###+$$#$#$#$#$#$#$##+$#$#$#$#$#$#$#$#+###$+$$", 48 | " +@###+$#$#$#$#$#$#$#$#+$$#$#$#$#$#$#$#$+###$+$$", 49 | " +@###+.$#$#$#$#$#$#$##+$#$#$#$#$#$#$#$#+###$+$$", 50 | " +@###.+++++++++++++++++++++++++++++++++.###$+$$", 51 | " +@#########################################$+$$", 52 | " +@#########################################$+$$", 53 | " +@#########################################$+$$", 54 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+.$$", 55 | " .+++++++++++++++++++++++++++++++++++++++++.$$$", 56 | " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", 57 | " #$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "}; 58 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtclock.m.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * clock_m_xpm[] = { 3 | "32 32 7 1", 4 | " c None", 5 | ". c #000000", 6 | "+ c #FFFFFF", 7 | "@ c #CCCCCC", 8 | "# c #999999", 9 | "$ c #666666", 10 | "% c #333333", 11 | " ", 12 | " ............................ ", 13 | " .++++++++++++++++++++++++++++. ", 14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@#. ", 15 | " .+@#$$$$$$$$$$$$$$$$$$$$$$#@#. ", 16 | " .+@$$$$$$$$$$$%$$$$$$$$$$$$@#. ", 17 | " .+@$$#@#@#@#@#.#@#@#@#@#@#$@#. ", 18 | " .+@$$@#@#@#@#@#@#@#@#@#@#@$@#. ", 19 | " .+@$$#@#@#@#@#@#@#@#@#@#@#$@#. ", 20 | " .+@$$@#@#@#@#@#@#@#@#@#@#@$@#. ", 21 | " .+@$$#@#@#@#@#@#@#@#@#@#@#$@#. ", 22 | " .+@$$@#@#@#@#@#@#@#@#@#@#@$@#. ", 23 | " .+@$$#@#@#@#@#@#@#@#@#@#@#$@#. ", 24 | " .+@$$@#@#@#@#@#@#@#@#@#@#@$@#. ", 25 | " .+@$$#@#@#@#@#.#@#@#@#@#@#$@#. ", 26 | " .+@$%.#@#@#@#...#@#@#@#@.%$@#. ", 27 | " .+@$$#@#@#@#@.....@#@#@#@#$@#. ", 28 | " .+@$$@#@#@#@#@.......@#@#@$@#. ", 29 | " .+@$$#@#@#@#@#@#..@...$#@#$@#. ", 30 | " .+@$$@#@#@#@#@#@#..@#@#@#@$@#. ", 31 | " .+@$$#@#@#@#@#@#@#..@#@#@#$@#. ", 32 | " .+@$$@#@#@#@#@#@#@#..@#@#@$@#. ", 33 | " .+@$$#@#@#@#@#@#@#@#..@#@#$@#. ", 34 | " .+@$$@#@#@#@#@#@#@#@#.#@#@$@#. ", 35 | " .+@$$#@#@#@#@#@#@#@#@#%#@#$@#. ", 36 | " .+@$$@#@#@#@#@.@#@#@#@#@#@$@#. ", 37 | " .+@$$#@#@#@#@#%#@#@#@#@#@#$@#. ", 38 | " .+@#$$$$$$$$$$$$$$$$$$$$$$#@#. ", 39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@#. ", 40 | " .+###########################. ", 41 | " ............................ ", 42 | " "}; 43 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtfile.l.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * FileManager_xpm[] = { 3 | "56 46 15 1", 4 | " c None", 5 | ". c #FFFFFF", 6 | "+ c #BEBABE", 7 | "@ c #010101", 8 | "# c #AEAAAE", 9 | "$ c #6986BE", 10 | "% c #F7B2AE", 11 | "& c #717986", 12 | "* c #000014", 13 | "= c #C7BAC7", 14 | "- c #BEC3CF", 15 | "; c #9E9A9E", 16 | "> c #EFF3F7", 17 | ", c #DFBA8E", 18 | "' c #BEC3BE", 19 | " ", 20 | " ", 21 | " ", 22 | " ", 23 | " ", 24 | " ............................................. ", 25 | " .++++++++++++++++++++++++++++++++++++++++++++@ ", 26 | " .+...................##.....................+@$ ", 27 | " .+.$$$$$$$$$$$$$$$$$$@#.$$$$$$$$$$$$$$$$$$$@+@$ ", 28 | " .++@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@+@$ ", 29 | " .+...................++....................++@$ ", 30 | " .+.++++++++++++++++++@+.+++++++++++++++++++@+@$ ", 31 | " .+.+.%.%.%+++++++++++@+.+%.%.%+++++++++++++@+@$ ", 32 | " .+.++++++++++++++++++@+.+++++++++++++++++++@+@$ ", 33 | " .+.+..%.%.+++++++++++@+.+%.%.%.++++++++++++@+@$ ", 34 | " .+.++++++++++++++++++@+.+++++++++++++++++++@+@$ ", 35 | " .+.+.%.%.++++++++++++@+.+&*@$@$$++++=++@$@$@+@$ ", 36 | " .+.+++++++++=+++=++++@+.+-++++++++=++++++++@+@$ ", 37 | " .+.+@@&*$@+++++++@$@$@+.+&*$@$+++++++++@$@$@+@$ ", 38 | " .+.+++-++++++++++++++@+.+-=++++++++++++++++@+@$ ", 39 | " .+.+@$@@$$+++++++@$@$@+.+$@@$@$$+++++++@$@$@+@$ ", 40 | " .+.++++++++++++++++++@+.+++++++++++++++++++@+@$ ", 41 | " .+.+@@$@$++=++=++@$@$@+.+$@@$@$=++=++++@$@$@+@$ ", 42 | " .+.++++++++++++++++++@+.+++++++++++++++++++@+@$ ", 43 | " .+.+@$@$@$+++++++@$@$@+.+$@$@$@$+++++++@$@$@+@$ ", 44 | " .+.++++++++++++++++++@+.+++++++++++++=+++++@+@$ ", 45 | " .++@@@@@@@@@@@@@@@@@@@++@@@@@@@@@@@@@@@@@@@@+@$ ", 46 | " .+...................++....................++@$ ", 47 | " .+.@@@@@@@@@@@@@@@@@+@+.@@@@@@@@@@@@@@@@@@+@+@$ ", 48 | " .+.@;;;;;;;;;;;;;;;;.@+.@;;;;;;;;;;;;;;;;;.@+@$ ", 49 | " .+.+.................@+.+..................@+@$ ", 50 | " .++@@@@@@@@@@@@@@@@@@@++@@@@@@@@@@@@@@@@@@@@+@$ ", 51 | " .+.....+.....+.....+.....+.....+.....+.....++@$ ", 52 | " .+.@@@@@>,###@.;,##@>,###@.$$$$@.++++@.%%%%@+@$ ", 53 | " .++@@@@@#@@@@@#@*@@@#@@@@@#@@@@@#@@@@@#@@@@@+@$ ", 54 | " .+.....#.....#.....#.....#.....#.....#.....++@$ ", 55 | " .+.@@@@@.&$&$@.%%%%@.#,##*.$$$$@.%%%%@.%%%%@+@$ ", 56 | " .++@@@@@+****@+@*@@@+@@*@@+@@@@@+@@@@@+@@*@@+@$ ", 57 | " .+++++++++++++++++++'++++++++++++++++++++++++@$ ", 58 | " ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$ ", 59 | " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ", 60 | " ", 61 | " ", 62 | " ", 63 | " ", 64 | " "}; 65 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODthelp.l.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * docs_xpm[] = { 3 | "56 56 9 1", 4 | " c None", 5 | ". c #1F3163", 6 | "+ c #333333", 7 | "@ c #FFE4C4", 8 | "# c #CDB79E", 9 | "$ c #8B7D6B", 10 | "% c #666666", 11 | "& c #999999", 12 | "* c #EED5B7", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ......... ", 20 | " .. .... ", 21 | " .. .... ", 22 | " .. .... ", 23 | " .... ", 24 | " ... ", 25 | " ... ", 26 | " ... ", 27 | " .. ", 28 | " .. ", 29 | " ... ", 30 | " .... ", 31 | " ... ", 32 | " .... ", 33 | " ", 34 | " ", 35 | " ", 36 | " .... ", 37 | " .... ", 38 | " .... ", 39 | " ", 40 | " ++++++++++ ++++++++++ ", 41 | " +++@@@@@@@@+++ +++@@@@@@@@+++ ", 42 | " ++@@@@@@@@@@@@++ +@@@@@@@@@@@@++ ", 43 | " +++@@@@@@@@@@@@@@++ ++@@@@@@@@@@@@@@+++ ", 44 | " ++#$@@@%%%@%@%%@@@@+++@@@@%%@%@%%%@@@$#++ ", 45 | " +$#$@@%@@@&@@@@%@@@@+@@@@%@@@@&@@@%@@$#$+ ", 46 | " +$#$@@@@@@@@@@@@@%@@+@@%@@@@@@@@@@@@@$#$+ ", 47 | " +$#$@@@@%%%@%%@%@@@@+@@@@%@%%@%%%@@@@$#$+ ", 48 | " +$#$@@&@@@@@@@@@%%@@+@@%%@@@@@@@@@&@@$#$+ ", 49 | " +$#$@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@@$#$+ ", 50 | " +$#$@@@%%%@%%%@@@@@@+@@@@@@%%%@%%%@@@$#$+ ", 51 | " +$@#$@@@@@@@@@@@%@@@+@@@%@@@@@@@@@@@$#@$+ ", 52 | " +$#$@@@%%@%%@@@@%@@+@@%@@@@%%@%%@@@$#$+ ", 53 | " +$#$@&@@@@@@@%%@@@@+@@@@%%@@@@@@@&@$#$+ ", 54 | " +$#$@@@%%@%%@@@@%@@+@@%@@@@%%@%%@@@$#$+ ", 55 | " +$#$@@@@@@@@@%@@@@@+@@@@@%@@@@@@@@@$#$+ ", 56 | " +$#$@@@*****@@@%&@@+@@&%@@@*****@@@$#$+ ", 57 | " +$#$$########@@@@@@+@@@@@@########$$#$+ ", 58 | " +$#$%%%%%%%%%#$@@@@+@@@@$#%%%%%%%%%$#$+ ", 59 | " +$+%%+++++++%%%#$@@+@@$#%%%+++++++%%+$+ ", 60 | " *+%+& ++%%%%+++%%%%++ &+%+* ", 61 | " ++++$$$++++ ", 62 | " $+++$ ", 63 | " ", 64 | " ", 65 | " ", 66 | " ", 67 | " ", 68 | " "}; 69 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtterm-root.m.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * dtterm_root_m_xpm[] = { 3 | "32 32 59 1", 4 | " c None", 5 | ". c #000000", 6 | "+ c #666666", 7 | "@ c #CCCCCC", 8 | "# c #FFFFFF", 9 | "$ c #FFE4C4", 10 | "% c #B59E88", 11 | "& c #FFEFDB", 12 | "* c #EED5B7", 13 | "= c #999999", 14 | "- c #8B7D6B", 15 | "; c #333333", 16 | "> c #330000", 17 | ", c #520000", 18 | "' c #6E2A2A", 19 | ") c #D2BEBE", 20 | "! c #E3D7D7", 21 | "~ c #5D1111", 22 | "{ c #A27676", 23 | "] c #9F7272", 24 | "^ c #6D2929", 25 | "/ c #D5C2C2", 26 | "( c #8D5858", 27 | "_ c #DFD0D0", 28 | ": c #A47A7A", 29 | "< c #692222", 30 | "[ c #530202", 31 | "} c #ECE4E4", 32 | "| c #540404", 33 | "1 c #BFA2A2", 34 | "2 c #814646", 35 | "3 c #601515", 36 | "4 c #976767", 37 | "5 c #D0BBBB", 38 | "6 c #D6C4C4", 39 | "7 c #9D7070", 40 | "8 c #631A1A", 41 | "9 c #733131", 42 | "0 c #E5DADA", 43 | "a c #5A0D0D", 44 | "b c #6D2828", 45 | "c c #D8C6C6", 46 | "d c #FCFBFB", 47 | "e c #976666", 48 | "f c #D0BABA", 49 | "g c #D7C5C5", 50 | "h c #9E7171", 51 | "i c #C8AEAE", 52 | "j c #7B3D3D", 53 | "k c #915E5E", 54 | "l c #B08B8B", 55 | "m c #A57B7B", 56 | "n c #692323", 57 | "o c #560606", 58 | "p c #E9DFDF", 59 | "q c #540303", 60 | "r c #C5AAAA", 61 | "s c #7E4141", 62 | "t c #C6C6C6", 63 | " ", 64 | " ", 65 | " ....+................+......@@", 66 | " .##$$%$$$$$$$$$$$$$$$$%&$&#*$.=", 67 | " .$--$%$$$$$$$$$$$$$$$$%*-*--$.=", 68 | " .$$$$%$$$$$$$$$$$$$$$$%$$$**$.=", 69 | " .;...+................+.....;.=", 70 | " .>>>>>>>>>>>>>>>>>>>>>>>>>>>>.=", 71 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 72 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 73 | " .>,,,,'),!~,,,,,,,,,,,,,,,,,,.=", 74 | " .>,,,,{]^/,,,,,,,,,,,,,,,,,,,.=", 75 | " .>,,(######,_:<,,,,,,,,,,,,,,.=", 76 | " .>,,,[}|12,,345678,,,,,,,,,,,.=", 77 | " .>,,,95,0a,,,,,bcd,,,,,,,,,,,.=", 78 | " .>,,######(,3efgh8,,,,,,,,,,,.=", 79 | " .>,,,ijkl,,,_mn,,,,,,,,,,,,,,.=", 80 | " .>,,opqrs,,,,,,,,,,,,,,,,,,,,.=", 81 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 82 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 83 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 84 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 85 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 86 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 87 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 88 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 89 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 90 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 91 | " @............................=@", 92 | " t===========================@ ", 93 | " ", 94 | " "}; 95 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtterm.m.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * dtterm_m_xpm[] = { 3 | "32 32 45 1", 4 | " c None", 5 | ". c #000000", 6 | "+ c #666666", 7 | "@ c #CCCCCC", 8 | "# c #FFFFFF", 9 | "$ c #FFE4C4", 10 | "% c #B59E88", 11 | "& c #FFEFDB", 12 | "* c #EED5B7", 13 | "= c #999999", 14 | "- c #8B7D6B", 15 | "; c #333333", 16 | "> c #BABABA", 17 | ", c #E7E7E7", 18 | "' c #5A5A5A", 19 | ") c #A9A9A9", 20 | "! c #424242", 21 | "~ c #464646", 22 | "{ c #515151", 23 | "] c #ADADAD", 24 | "^ c #C5C5C5", 25 | "/ c #7B7B7B", 26 | "( c #AFAFAF", 27 | "_ c #C2C2C2", 28 | ": c #5C5C5C", 29 | "< c #878787", 30 | "[ c #DFDFDF", 31 | "} c #B9B9B9", 32 | "| c #D4D4D4", 33 | "1 c #E5E5E5", 34 | "2 c #909090", 35 | "3 c #C7C7C7", 36 | "4 c #DADADA", 37 | "5 c #4C4C4C", 38 | "6 c #9B9B9B", 39 | "7 c #545454", 40 | "8 c #DEDEDE", 41 | "9 c #BEBEBE", 42 | "0 c #8B8B8B", 43 | "a c #E1E1E1", 44 | "b c #6A6A6A", 45 | "c c #CFCFCF", 46 | "d c #525252", 47 | "e c #4F4F4F", 48 | "f c #C6C6C6", 49 | " ", 50 | " ", 51 | " ....+................+......@@", 52 | " .##$$%$$$$$$$$$$$$$$$$%&$&#*$.=", 53 | " .$--$%$$$$$$$$$$$$$$$$%*-*--$.=", 54 | " .$$$$%$$$$$$$$$$$$$$$$%$$$**$.=", 55 | " .;...+................+.....;.=", 56 | " .>>>>>>>>>>>>>>>>>>>>>>>>>>>>.=", 57 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 58 | " .>,,,,,@,,,,,,,,,,,,,,,,,,,,,.=", 59 | " .>,,,,,',,,,,,,,,,,,,,,,,,,,,.=", 60 | " .>,,,)!~{=,,],,,,,,,,,,,,,,,,.=", 61 | " .>,,,~^~@+,,/+@,,,,,,,,,,,,,,.=", 62 | " .>,,,!(~,,,,,_:<[,,,,,,,,,,,,.=", 63 | " .>,,,}~~|,,,,,12~3,,,,,,,,,,,.=", 64 | " .>,,,,4~5,,,,167(,,,,,,,,,,,,.=", 65 | " .>,,,8,~@~,,9:0a,,,,,,,,,,,,,.=", 66 | " .>,,,:,~@~,,bc,,,,,,,,,,,,,,,.=", 67 | " .>,,,/d~~=,,,,,,,,,,,,,,,,,,,.=", 68 | " .>,,,,,e,,,,,,,,,,,,,,,,,,,,,.=", 69 | " .>,,,,,@,,,,,,,,,,,,,,,,,,,,,.=", 70 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 71 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 72 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 73 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 74 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 75 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 76 | " .>,,,,,,,,,,,,,,,,,,,,,,,,,,,.=", 77 | " @............................=@", 78 | " f===========================@ ", 79 | " ", 80 | " "}; 81 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/ODtwww.m.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * earth_3d_s_xpm[] = { 3 | "32 32 14 1", 4 | " c None", 5 | ". c #010101", 6 | "+ c #285D49", 7 | "@ c #188651", 8 | "# c #202496", 9 | "$ c #28FF20", 10 | "% c #51A249", 11 | "& c #5155FF", 12 | "* c #307159", 13 | "= c #AEA671", 14 | "- c #59A2D7", 15 | "; c #8E8679", 16 | "> c #284D96", 17 | ", c #303430", 18 | " ....... ", 19 | " .++@.##.#.... ", 20 | " @.$#########.#... ", 21 | " ##$+######@+++..#.. ", 22 | " ####%$###%#$.+@+#.... ", 23 | " ###&$@%$%#$%@@#+@.#.... ", 24 | " ##&&#$#$@$$+$%%$.####.#.. ", 25 | " ##&#&&#&$$$%%$##+@#.#.#.... ", 26 | " #&#&&#&&%%$%$@##$*%###.#... ", 27 | " #&#&&&&&#$$%$%$$$+$####.#.... ", 28 | " ##&&&#&&&$$$$$#*%$+$####.#... ", 29 | " &&&#&&&&&$$$%$$@$+%####.#.... ", 30 | "#&#&&&&&&&$$%$$%$$@$#####.#.#.. ", 31 | "#&&&&&&&&&=$$$%$%$+$######..... ", 32 | "#&#&&&&&&&-$%$$$%$%#####.##.#.. ", 33 | "#&&&&&&&&&&$$$;$%#$#######....# ", 34 | "#&#&&&&&&&&$$$$#&#&#&####.#.#.. ", 35 | "#&&&&&&&&&&&&$$&#&##&#####..... ", 36 | "&#&&&&&&&&&&&$$&%#&#######.#.#. ", 37 | " #&#&&&&&&&#&&&#$%$####@.#.... ", 38 | " #&&&&&&&&&&&&&#&#$#%+%%*+.#.. ", 39 | " #&#&&#&&>&&#&#&#&##$$@++.+... ", 40 | " #&#&&&&&&&&&&&#&##,%+@++... ", 41 | " #&&&#&&#&#&##&##&#$+++.+.+. ", 42 | " #&#&&#&&&#&&#&###++%.$... ", 43 | " #&#&&#&#&##&####@++...+ ", 44 | " #&##&#&#&##&####.+++. ", 45 | " #&#&#>&#######.+.+. ", 46 | " ###&###&#####.+.. ", 47 | " %#########.#.. ", 48 | " #####.# ", 49 | " "}; 50 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/TextEditor.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 18 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #BEBEBABABEBE", 6 | "X c #010101010101", 7 | "o c #AEAEAAAAAEAE", 8 | "O c #C7C7BABAC7C7", 9 | "+ c #69698686BEBE", 10 | "@ c #9E9E9A9A9E9E", 11 | "# c #717179798686", 12 | "$ c #000000001414", 13 | "% c #F7F7B2B2AEAE", 14 | "& c #79799292B6B6", 15 | "* c #DFDFBABA8E8E", 16 | "= c #51515555FFFF", 17 | "- c #797986869E9E", 18 | "; c #A6A69E9EA6A6", 19 | ": c #BEBEC3C3BEBE", 20 | "> c #BEBEC3C3CFCF", 21 | ", c #AEAEAEAEB6B6", 22 | " .", 23 | " ......................................................X", 24 | " ......................................................X", 25 | " ......................................................X", 26 | " o...o...o...o...o...o...o...o...o...o...o...o...o...o.X", 27 | " ..... o..O..X", 28 | " o.oOo +@++ @+@+@+@+@+@+@+@+@+++++++++++ +++X +++X.o.o.X", 29 | " ..... @+@+ @@+@+@+@+@+@+@+@+@+@+@+@++++ +++X +++X....oX", 30 | " o.o.o +@++ @+@+@+@+@+@+@+@+@+@+@+#++++X +++X +++X.o.o.X", 31 | " ...o..XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXX..o..X", 32 | " o.o.o X..................................... @@@X.o.o.X", 33 | " .o... X..................................... @+@Xo...oX", 34 | " o.o.o X..................................... +@+X.o.o.X", 35 | " .o.o. X..................................... @+@Xo.o.oX", 36 | " o.o.o X...X+X.XX.X+X+X+.X+X.XX.X.X.XX.X+.... +@+X.o.o.X", 37 | " oo.oo X..................................... @++Xo.o+oX", 38 | " o.o.o X...X.X+.XX.X.XX.X+.XX.X.XX.X.XX.X.... +@+X.++%.X", 39 | " ooooo X..................................... @++++% oX", 40 | " o.o.o X...XX+.XX.X+X.X.XX.X.XX.X+.XX.X+..... +++% .X", 41 | " ooooo X.....................................++% %ooX", 42 | " ooo.o X...X+X.X.XX.+X+....................++% %o@@oX", 43 | " ooooo X.................................++% %o@@@@oX", 44 | " ooooo X...XX+.XX.XX.X+XX.X.X+X+.X@X@..++% %o@@@@+XoX", 45 | " ooooo X.............................++% %o@@@@+XXXoX", 46 | " @ooo@ X...XX.XX.X.XX.XX.X.XX.XX.X..X% %o@@@@+XXXXXoX", 47 | " ooooo X...........................X %o@@@@+XXXXXX+oX", 48 | " oo@o@ X...X+X.+.XX.X.XX.+X.XX.X..+@ %o@@@@+XXXXXX+o@oX", 49 | " ooooo X.........................+ @%o@@@@+XXXXXX+oooooX", 50 | " @o@o@ X...X+X.XX.X.............+ %@+@@@+XXXXXX++Xo@o@oX", 51 | " ooooo X.......................+ %@X@+XXXXXX+@++XoooooX", 52 | " @o@o@ X...XX+.X.X+X.XX.+X.X..# %%%o&XXXXXX+@.+++Xo@o@oX", 53 | " o@ooo X....................O#$o*oo*oXXXX+@.. +++X@ooo@X", 54 | " @o@o@ X...X.XX.XX.XX.+X.X+.+$$X#=&-#++;..... +++Xo@o@oX", 55 | " o@o@o X..................O.....:::>>>....... +++X@o@o@X", 56 | " @o@o@ X...X+X.X.+X.X........................ +#+$o@o@oX", 57 | " @@o@@ X......................;,............. +++X@o@@@X", 58 | " @o@o@ X...................O..o@@o........... +++Xo@o@oX", 59 | " @@@@@ X.......................@@@@,......... +++X@@@@@X", 60 | " @o@o@ X.......................o@@@@@o.O..... +++Xo@o@oX", 61 | " @@@@@ X ....... +++X@@@@@X", 62 | " @@@o@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@@o@@X", 63 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@X@X@X@@@@@@@@@@@@@@X", 64 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@X@X@X@X@@@@@@@@@@@@@X", 65 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@X@X@X@X@@@@@@@@@@@@X", 66 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@+@+@+@+@@@@@@@@@@@X", 67 | ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 68 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/cli.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 15 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #BEBEBABABEBE", 6 | "X c #010101010101", 7 | "o c #AEAEAAAAAEAE", 8 | "O c #C7C7BABAC7C7", 9 | "+ c #69698686BEBE", 10 | "@ c #9E9E9A9A9E9E", 11 | "# c #717179798686", 12 | "$ c #000000001414", 13 | "% c #AEAEAEAEB6B6", 14 | "& c #AEAEB2B2CFCF", 15 | "* c #38386D6DA6A6", 16 | "= c #5959A2A2D7D7", 17 | "- c #51515555FFFF", 18 | "; c #79799292B6B6", 19 | " .", 20 | " ......................................................X", 21 | " ......................................................X", 22 | " ......................................................X", 23 | " o...o.O.o...o...oO..o...o.O.o...o...oO..o...o.O.o...o.X", 24 | " ..... .O....X", 25 | " o.o.o +@++ @+@+@+@+@+@+@+@+@+++++++++++ +++X +++X.o.o.X", 26 | " ..... @+@+ @@+@+@+@+@+@+@+@+@+@+@+@++++ +++X +++X....oX", 27 | " o.o.o +@++ @+@+@+@+@+@+@+@+@+@+@+#++++X +++X +++X.o.o.X", 28 | " ...o..XXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXX..o..X", 29 | " o.o.o X..................................... @@@X.o.o.X", 30 | " .o... X..................................... @+@Xo...oX", 31 | " o.o.o X..................................... +@+X.o.o.X", 32 | " .o.o. X....X................................ @+@Xo.o.oX", 33 | " o.o.o X...XX..X@.... ..........O.......... +@+X.o.o.X", 34 | " oo.oo X..@+X..@X@... ..................... @++Xo.oooX", 35 | " o.o.o X....X..@X@... ......O......O....... +@+X.o.o.X", 36 | " ooooo X....X..X@.... O.................O.. @++XoooooX", 37 | " o.o.o X....@......O. ...O................. +@+X.o.o.X", 38 | " ooooo X..........................O...O...... @++XoooooX", 39 | " ooo.o X...O................................. +@+Xoo.ooX", 40 | " ooooo X......O.................O............ @++XoooooX", 41 | " ooooo X..........O........O........O........ #%#$oooooX", 42 | " ooooo X..................................O.. &*+XoooooX", 43 | " @ooo@ X..............O...................... #=#$ooo@oX", 44 | " ooooo X.....O...O..............O......O..... o-+XoooooX", 45 | " oo@o@ X..O........................O......... #;+Xo@o@oX", 46 | " ooooo X............O.....O...O...........O.. %++XoooooX", 47 | " @o@o@ X..................................... +++$o@o@oX", 48 | " ooooo X.......O.....................O....... @++XoooooX", 49 | " @o@o@ X..............O...................... +++Xo@o@oX", 50 | " o@ooo X...O......O.......O...O...O.......... +++X@ooo@X", 51 | " @o@o@ X...................................O. +++Xo@o@oX", 52 | " o@o@o X..................................... +++X@o@o@X", 53 | " @o@o@ X......................O......O....... +++Xo@o@oX", 54 | " @@o@@ X....O..O..........O.......O.......... #++X@o@@@X", 55 | " @o@o@ X..........O...O................O..... +++Xo@o@oX", 56 | " @@@@@ X..................................... +++X@@@@@X", 57 | " @o@o@ X.....O................O.............. +++Xo@o@oX", 58 | " @@@@@ X +++X@@@@@X", 59 | " @@@o@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@@o@@X", 60 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 61 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 62 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 63 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X", 64 | ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 65 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/text_3d.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 17 1", 4 | " c #FFFFFAFAFFFF", 5 | ". c #BEBEB6B6BEBE", 6 | "X c #000000001111", 7 | "o c #C7C7BABAC7C7", 8 | "O c #AEAEA6A6AEAE", 9 | "+ c #010101010101", 10 | "@ c #FFFFFFFFD7D7", 11 | "# c #DFDFBABA8E8E", 12 | "$ c #F7F7B2B2AEAE", 13 | "% c #8E8E86867979", 14 | "& c #AEAE61616161", 15 | "* c #AEAEAEAEB6B6", 16 | "= c #5151A2A24949", 17 | "- c #A6A679798E8E", 18 | "; c #9E9E9A9A9E9E", 19 | ": c #96969696AEAE", 20 | "> c #A6A69E9EA6A6", 21 | " .", 22 | " ......................................................X", 23 | " .o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.oX", 24 | " ......................................................X", 25 | " O.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.O.X", 26 | " o...................................................o.X", 27 | " O.OoO.O.OoO.O.O.OoO.O.O.OoO.O.O.OoO.O.O.OoO.OoO.O.O.O.X", 28 | " .o...O.o....oO.++++++++++++++++++...oO.o...o.O..o.o..OX", 29 | " O.O.OoO.O.OoO.O+@@@@@@@@@@@@@@@@++O.O.O.O.O.O.O.O.O.O.X", 30 | " ..oO...O.o.O...+@@@@@@@@@@@@@@@@+#+O.o.O.o.O.o.Oo..O.oX", 31 | " O.O.OoO.O.O.OoO+@@@@@@@+++@++++@+##+O.O.O.O.O.O.O.OoO.X", 32 | " .O.o.O.O.O.o.O.+@@@@@@@@@@@@@@@@+###+O.OoO..oO.O.O...OX", 33 | " O.O.O.OoO.O.O.O+@@@@@@@@@@@@@@@@+####+O.O.OoO.OoO.OoO.X", 34 | " .O.O.O.O.OoO.O.+@++@+++@+++++@+++#$###+O.O.O.O.O.O.O.OX", 35 | " O.OoO.O.O.O.OoO+@@@@@@@@@@@@@@@@++++X++%O.O.OoO.OoO.O.X", 36 | " OO.OOOoOOO.OOO.+@++++++++@++@++++##+##+&OOoOOO.OOO.OOOX", 37 | " O.O.O.O.OoO.O.O+@@@@@@@@@@@@@@@@@@####+%*.O.O.OoO.O.O.X", 38 | " OOOOOOOOOOOOOOO+@++++@++@++++@@++++X@@+%OOOOOOOOOOOOOOX", 39 | " O.OoO.O.O.O.O.O+@@@@@@@@@@@@@@@@@@@@@@+&*.O.O.O.O.O.O.X", 40 | " OOOOOOOOOOOOOOO+@++@++@++++@+++++@@@@@X=*OOOOOOOOOOOOOX", 41 | " OOO.OOOoOOO.OOO+@@@@@@@@@@@@@@@@@@@@@@+-OOO.OOOoOOOoOOX", 42 | " OOOOOOOOOOOOOOO+@@@+@++++@@@@@@@@@@@@@+&OOOOOOOOOOOOOOX", 43 | " OOOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@+%*OOOOOOOOOOOOOX", 44 | " OOOOOOOOOOOOOOO+@@@+@+++@++@+++@@++@@@+%OOOOOOOOOOOOOOX", 45 | " ;OOO;OOO;OOO;OO+@@@@@@@@@@@@@@@@@@@@@@+%;OOO;OOO;OOO;OX", 46 | " OOOOOOOOOOOOOOO+@@@+@++++@+@+++@+@@@@@+&OOOOOOOOOOOOOOX", 47 | " OO;O;O;OOO;O;O;+@@@@@@@@@@@@@@@@@@@@@@+%*O;O;O;OOO;O;OX", 48 | " OOOOOOOOOOOOOOO+@@@+@+++@+++@@@@@@@@@@+%OOOOOOOOOOOOOOX", 49 | " ;O;O;O;O;O;O;O;+@@@@@@@@@@@@@@@@@@@@@@+%;O;O;O;O;O;O;OX", 50 | " OOOOOOOOOOOOOOO+@++++++++@++@+++++++@@+&OOOOOOOOOOOOOOX", 51 | " ;O;O;O;O;O;O;O;+@@@@@@@@@@@@@@@@@@@@@@+%:O;O;O;O;O;O;OX", 52 | " O;OO>;OO>;OOO;O+@+++@+++++@+++++@@++@@+%O;OOO;OOO;OOO;X", 53 | " ;O;O;O;O;O;O;O;+@@@@@@@@@@@@@@@@@@@@@@+%;O;O;>;O;>;O;OX", 54 | " O;O;>>>>>>>;>;O+@+++++@++++++@+++++@@@+&O;>;O;O;O;O;O;X", 55 | " ;O;O>>;O;O>O;O;+@@@@@@@@@@@@@@@@@@@@@@+%:O;O;O;>>>>>;OX", 56 | " ;;>;;;O;;;>;;;O+@@@@@@@@@@++@@@@@@@@@@+&;;O;;;O;;;>;;;X", 57 | " ;O>>;O;>>>>>>>;+@@@@@@@@@@@@@@@@@@@@@@+=>O;>;>>>;O>>>>X", 58 | " ;;;;;;;;;;;;;;;++++++++++++++++++++++++->;;;>;;;;;;;;;X", 59 | " ;>;>>>>>>>;>;O;O&=-%&=-%&=-%&=-%&=-%&=-&:>;>;>>>>>;>>OX", 60 | " ;;;>-;;>-;;>;;;;:>;;:>;;:>;;:>;;:>;;:>;:;;;>-;;>-;;;;;X", 61 | " ;;;>>;;O;;;>;;;O;;;O;;;O;;;O;;;O;;;O;;;O;;;O:>;O;;;>;;X", 62 | " ;;;;;;;>:-;;:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:->;;;X", 63 | " ;>>-:;-;;O;;;;;;;>;;;;;;;>;;;;;;;>;;;;;;;>;-;;-:;O;;;;X", 64 | " ;;;;;;:;;;>-;;:-;>:-;;:-;;:-;;:-;;:-;;:-;;;;:;>;;;:-;;X", 65 | " ;;;;;;;;;;:;;;;;:;;;:;;;;;;;:;;;;;;:;;;;:;;;;;;;;;;>;;X", 66 | ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 67 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/text_blue_3d.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 19 1", 4 | " c #FFFFFAFAFFFF", 5 | ". c #BEBEB6B6BEBE", 6 | "X c #000000001111", 7 | "o c #C7C7BABAC7C7", 8 | "O c #AEAEA6A6AEAE", 9 | "+ c #010101010101", 10 | "@ c #FFFFFFFFD7D7", 11 | "# c #DFDFBABA8E8E", 12 | "$ c #F7F7B2B2AEAE", 13 | "% c #51515555FFFF", 14 | "& c #8E8E86867979", 15 | "* c #AEAE61616161", 16 | "= c #AEAEAEAEB6B6", 17 | "- c #5151A2A24949", 18 | "; c #A6A679798E8E", 19 | ": c #B6B6AEAEB6B6", 20 | "> c #9E9E9A9A9E9E", 21 | ", c #96969696AEAE", 22 | "< c #A6A69E9EA6A6", 23 | " .", 24 | " ......................................................X", 25 | " .o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.oX", 26 | " ......................................................X", 27 | " O.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.Oo.oO.o.O.X", 28 | " o...................................................o.X", 29 | " O.OoO.O.OoO.O.O.OoO.O.O.OoO.O.O.OoO.O.O.OoO.OoO.O.O.O.X", 30 | " .o...O.o....oO+++++++++++++++++++...oO.o...o.O..o.o..OX", 31 | " O.O.OoO.O.OoO.+@@@@@@@@@@@@@@@@@++O.O.O.O.O.O.O.O.O.O.X", 32 | " ..oO...O.o.O..+@@@@@@@@@@@@@@@@@+#+O.o.O.o.O.o.Oo..O.oX", 33 | " O.O.OoO.O.O.O.+@@@@@@@@@@@@@@@@@+##+O.O.O.O.O.O.O.OoO.X", 34 | " .O.o.O.O.Oo..O+@@@@@@@@@@@@@@@@@+###+O.OoO..oO.O.O...OX", 35 | " O.O.O.OoO.O.O.+@@@@@@@@@@@@@@@@@+####+O.O.OoO.OoO.OoO.X", 36 | " .O.O.O.O.O.O.O+@@@@@@@@@@@@@@@@@+#$###+O.O.O.O.O.O.O.OX", 37 | " O.OoO.O.OoO.Oo+@@@@@%%%%%%%%%%@@++++X++&O.O.OoO.OoO.O.X", 38 | " OO.OOOoOOO.OOO+@@@@@@@@@@@@@@@@@@#####+*OOoOOO.OOO.OOOX", 39 | " O.O.O.O.O.OoO.+@@@@@%%%%%%%%%%@@@@####X&=.O.O.OoO.O.O.X", 40 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@+&OOOOOOOOOOOOOOX", 41 | " O.OoO.O.OoO.O.+@@@@@@@%%%%%%%%%@@@@@@@+*=.O.O.O.O.O.O.X", 42 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@X-=OOOOOOOOOOOOOX", 43 | " OOO.OOO.OOO.OO+@@@@@@%%%%%%%%%%@@@@@@@+;OOO.OOOoOOOoOOX", 44 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@+*OOOOOOOOOOOOOOX", 45 | " OOOOOOOOOOOOOO+@@@@@%%%%%%%%%%@@@@@@@@+-:OOOOOOOOOOOOOX", 46 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@+;:OOOOOOOOOOOOOX", 47 | " >OOO>OOO>OOO>O+@@@@@@@%%%%%%%%%@@@@@@@+*,OOO>OOO>OOO>OX", 48 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@X-=OOOOOOOOOOOOOX", 49 | " OO>O>O>OOO>O>O+@@@@@@%%%%%%%%%%@@@@@@@+;OO>O>O>OOO>O>OX", 50 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@+*OOOOOOOOOOOOOOX", 51 | " >O>O>O>O>O>O>O+@@@@@%%%%%%%%%%@@@@@@@@+&,O>O>O>O>O>O>OX", 52 | " OOOOOOOOOOOOOO+@@@@@@@@@@@@@@@@@@@@@@@+&OOOOOOOOOOOOOOX", 53 | " >O>O>O>O>O>O>O+@@@@@@%%%%%%%%%%@@@@@@@+&>O>O>O>O>O>O>OX", 54 | " O>OO<>OO<>OOO>+@@@@@@@@@@@@@@@@@@@@@@@+*O>OOO>OOO>OOO>X", 55 | " >O>O>O>O>O>O>O+@@@@@%%%%%%%@@@@@@@@@@@+&,O>O><>O><>O>OX", 56 | " O><>O>O>O><>O>+@@@@@@@@@@@@@@@@@@@@@@@+&O>O>O>O>O>O>O>X", 57 | " >O>O>O>O>O>O>O+@@@@@@@@@@@@@@@@@@@@@@@+*,O><>O><>O><>OX", 58 | " >>O>>>O;>>O>>>+@@@@@@@@@@@@@@@@@@@@@@@+&>>O>>>O>>>O>>>X", 59 | " >O><<<<>O+@@@@@@@@@@@@@@@@@@@@@@@+&>O><>O>O><<<>OX", 60 | " >>>>>>>>>>>>>>+++++++++++++++++++++++++*>>>>>>,;<>>>>>X", 61 | " ><<<><<<><<<>O>*-;&*-;&*-;&*-;&*-;&*-;&-O><<<<>OX", 62 | " >>>>>>,;<>>>>>>,<>>,<>>,<>>,<>>,<>>,<><<,<>,;>>>>>>>>>X", 63 | " >>;O<>>O>;<<<>>O>>>O>>>O>>>O>>>O>>>O>>><<;>O<>><<;<<<>X", 64 | " >>,>,;>>>,>,;>>>>>>>>>>>>>>>>>>>>>>>,;>>>,>>>,;>>,>>>>X", 65 | " ><>>>>>>>O>>>,>>;O,>>>>>><>>>>>>><<>>,>>><>>>><>><>>>>X", 66 | " >>>>>>>,;>>>>>>>,>>,;>,;>>>,;>,;>>>>>>,;<>>,;>>>>>,;>>X", 67 | " >>>;<>>>>>>;,>;,>>>>>>>,>>>>,>>,>>;,>>>>>>;<>>>;,>>>>>X", 68 | ".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 69 | -------------------------------------------------------------------------------- /share/opencde/dtpanel/icons/xterm.next.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * image_name[] = { 3 | "56 46 29 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #D7D7D3D3D7D7", 6 | "X c #010101010101", 7 | "o c #E7E7E7E7EFEF", 8 | "O c #515155554949", 9 | "+ c #9A9A98989A9A", 10 | "@ c #ADADACACADAD", 11 | "# c #616161616161", 12 | "$ c #AEAEAEAEB6B6", 13 | "% c #A6A69E9EA6A6", 14 | "& c #BEBEB6B6BEBE", 15 | "* c #CFCFC7C7CFCF", 16 | "= c #717175757171", 17 | "- c #303034343030", 18 | "; c #28282C2C3030", 19 | ": c #202020202020", 20 | "> c #696969697171", 21 | ", c #B6B6AEAEB6B6", 22 | "< c #181820202020", 23 | "1 c #8E8E8A8A8E8E", 24 | "2 c #797986869E9E", 25 | "3 c #EFEFF3F3F7F7", 26 | "4 c #D7D7DFDFE7E7", 27 | "5 c #BEBEC3C3BEBE", 28 | "6 c #C7C7BABAC7C7", 29 | "7 c #8E8E86867979", 30 | "8 c #AEAE9E9E5959", 31 | "9 c #5151A2A24949", 32 | "0 c #000000001818", 33 | " .X", 34 | " ...................................................oOX", 35 | " +@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@+@@@#X", 36 | " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$#X", 37 | " %@@@@@@&$&&*&&$*&&*&&*&&*&&*&&$*&&*&&*&&*&&&$@@@@@@&=X", 38 | " %@@@@@&+O----O-----;--;---;--O-----;--;---;O+&@@@@@$#X", 39 | " @@@@@$OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXO&@@@@&=X", 40 | " %@@@&=X:---OO-------------------------------:X>&@@@$=X", 41 | " %@@@,OX:=:# 1X.OXX XXXXX= .XXO*@@@,=X", 43 | " %@@@*OX:+>+=X . o... *..34.* 4XXO&@@@&=X", 44 | " @@@@&OXX-,-.X @O =->X@@O>#:X<-+,@*+o +. .XXO,@@@@OX", 45 | " %@@@,OXX@ o X o o 3 o 4.4. *o .XXO&@@@&=X", 46 | " %@@$5OX:o&@*X $# =@#Xo:X X- &X1 oXXO*@@@,=X", 47 | " @@@@,OXX4&@.X .$ $o&2 +1 12@ o+>=. *XXO,@@@&OX", 48 | " %@@@,OXXo*@*X 3* .3*@ 6@ ,@* ,@+o .XXO&@@@&OX", 49 | " +@@@*OXX3<@,X @= =@ OXX XXOoX:@ 4XXO&@@@,#X", 50 | " @@@@,OXX4*o.X o* .+o*@ @&@@. .XXO&,@@$=X", 51 | " %@@@&OXX.&@*X .$ .2o@1 +++2@ .XXO&@@@&=X", 52 | " %@@@,OX<3*@*X @= 1X& -XXX - oXXO@@@@&OX", 53 | " @@@@*OXX@+1+X 3 o 4oo o . .XXO,@@@@=X", 54 | " %@@@,OXX+,$.X @O =>&.XOX.@oOO+ .XXO,&@@&OX", 55 | " %@@@,OX:3@=oX oo o o.. @*. 4XXO&@@@,=X", 56 | " %@@@,OXXoOX=X $# >@OXoX .XXO,@@@&=X", 57 | " @@@@*OXX=OO#X .@ @. => .>. .XXO,@@@,OX", 58 | " @@@@,OXX@..4X o. .o ,@ o@o .XXO,@@@&OX", 59 | " %@@@&OXX3X*OXX oX- .XXO.@@@,#X", 60 | " %@@@,OXX @1.X 3$ .3*+@@21 .XXO@@@@$=X", 61 | " @@@@*OX:O-;OX . 4 .,@,&@ oXXO&@@@&#X", 62 | " %@@@,OXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXO,@@@$=X", 63 | " %@@@,OX:X-X-X-X:X:XX:X-XOXOX-X:X::X:X:X-X-X:XXO,@@@&=X", 64 | " @@@@&2#==##=====-XXXXXXXXXXXXXXXXXX-======##==1&@@@@OX", 65 | " @@@@@@,$$&$,$,$&@=::OX-XOXOXOX-XOXO&,@,,&$&$&@@@@@@&=X", 66 | " %@@@@@@@@@@@@@@@@*1XX-XOXOXOX-X-X=*@@@@@@@@@@@@@@@@,=X", 67 | " %@@@@@@@@@@@@@@@,+X", 78 | "o-XXXXXXXXXXXXXXXXXXX0XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}; 79 | -------------------------------------------------------------------------------- /share/opencde/dtwm/dtwmrc: -------------------------------------------------------------------------------- 1 | Keys DefaultKeyBindings 2 | { 3 | AltF2 root|icon|window f.exec "dtrun &" 4 | } 5 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/Fpdown.t.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Fpdown_t_xpm[] = { 3 | "48 24 4 1", 4 | " c None", 5 | ". c #6A6A6A", 6 | "+ c #FFFFFF", 7 | "@ c #A2A2A2", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ..........+ ", 18 | " . @ @ @ + ", 19 | " . @ @ + ", 20 | " . @ + ", 21 | " . + ", 22 | " + ", 23 | " ", 24 | " ", 25 | " ", 26 | " ", 27 | " ", 28 | " ", 29 | " ", 30 | " ", 31 | " "}; 32 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/Fpexclamation.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Fpexclamation_xpm[] = { 3 | "32 32 2 1", 4 | " c None", 5 | ". c #000000", 6 | " ", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " .. ", 14 | " .. . ", 15 | " .. . . ", 16 | " . . . ", 17 | " .. . . ", 18 | " . . . ", 19 | " .. . . ", 20 | " .. . ", 21 | " . . ", 22 | " .. . ", 23 | " . . ", 24 | " .. . ", 25 | " . . ", 26 | " ", 27 | " ", 28 | " .... ", 29 | " . . ", 30 | " .. . ", 31 | " . . ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " "}; 38 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/Fpexit.s.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Fpexit_s_xpm[] = { 3 | "24 24 7 1", 4 | " c None", 5 | ". c #CCCCCC", 6 | "+ c #666666", 7 | "@ c #333333", 8 | "# c #FFFFFF", 9 | "$ c #000000", 10 | "% c #525252", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | "........................", 20 | ".+++++++++++++++++++++@#", 21 | ".+....................@#", 22 | ".+.$$$$$.$....$.$+$$$%@#", 23 | ".+.$......$..$..$..$..@#", 24 | ".+.$......$..$..$..$..@#", 25 | ".+.$.......@@...$..$..@#", 26 | ".+.$$$$$...$$...$..$..@#", 27 | ".+.$.......$$...$..$..@#", 28 | ".+.$.......@@...$..$..@#", 29 | ".+.$......$..$..$..$..@#", 30 | ".+.$......$..$..$..$..@#", 31 | ".+.$$$$$.$....$.$..$..@#", 32 | ".+....................@#", 33 | ".+@@@@@@@@@@@@@@@@@@@@@#", 34 | ".#######################"}; 35 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/Fplock.s.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Fplock_s_xpm[] = { 3 | "24 24 7 1", 4 | " c None", 5 | ". c #CCCCCC", 6 | "+ c #333333", 7 | "@ c #FFFFFF", 8 | "# c #999999", 9 | "$ c #000000", 10 | "% c #666666", 11 | " .......... ", 12 | " .++++++++++. ", 13 | " .+@@@@@@@@@@+. ", 14 | " .+@###########+. ", 15 | " .+@##$$$$$$###+. ", 16 | " .+@#$ +##+. ", 17 | " .+@#$ +##+. ", 18 | " .+@#$ +##+. ", 19 | " .+@#$ +##+. ", 20 | " .+@#$ +##+. ", 21 | " .++++++++++++++++. ", 22 | " .+.@@@@@@@@@@@@@@@$. ", 23 | " .+@#............##$. ", 24 | " .+@#%%%%%%%%%%%%##$. ", 25 | " .+@###############$. ", 26 | " .+@#............##$. ", 27 | " .+@#%%%%%%%%%%%%##$. ", 28 | " .+@###############$. ", 29 | " .+@#............##$. ", 30 | " .+@#%%%%%%%%%%%%##$. ", 31 | " .+@###############$. ", 32 | " .#$$$$$$$$$$$$$$$$#. ", 33 | " .................... ", 34 | " "}; 35 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/Fpmin.l.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * Fpmin_l_xpm[] = { 3 | "21 15 3 1", 4 | " c None", 5 | ". c #E2E2E2", 6 | "+ c #636363", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " ...+ ", 13 | " . + ", 14 | " . + ", 15 | " .+++ ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " "}; 22 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtClipboard.l.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtClipboard_l_pm[] = { 3 | "48 48 4 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #000000000000", 6 | "X c #999999999999", 7 | "o c #666666666666", 8 | " ", 9 | " ........ ", 10 | " .............XXXXXX............. ", 11 | " .XXXXXXXXX.XXXooooooXXX.XXXXXXXXX. ", 12 | " .XXXXXXXXXX.XXXXXXXXXXXX.XXXXXXXXXX. ", 13 | " .XXXXXXXXXX.XXXXXXXXXXXX.XXXXXXXXXX. ", 14 | " .XXXXXXXXXX..............XXXXXXXXXX. ", 15 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 16 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 17 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 18 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 19 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 20 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 21 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 22 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 23 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 24 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 25 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 26 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 27 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 28 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 29 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 30 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 31 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 32 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 33 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 34 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 35 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 36 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 37 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 38 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 39 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 40 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 41 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 42 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 43 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 44 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 45 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 46 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 47 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 48 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 49 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 50 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 51 | " .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. ", 52 | " ................................ ", 53 | " ", 54 | " ", 55 | " "}; 56 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtKey.m.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtKey_m_pm[] = { 3 | "32 32 6 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #000000000000", 6 | "X c #41416969E1E1", 7 | "o c #FFFFF6F68F8F", 8 | "O c #999999999999", 9 | "+ c #FFFFEFEFDBDB", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " ", 19 | " ", 20 | " ", 21 | " ..... ", 22 | " .XXXXX. ", 23 | " .XX..XX. ", 24 | " .X. .XXX................. ", 25 | " .X. .XXX.oooooooooooooooo. ", 26 | " .X. .XXX.OOOOOOOOOOOOOOOOO. ", 27 | " .X. .XXX.++++++++++++++++. ", 28 | " .XX..XXX.+++.+++++..++++. ", 29 | " .XXXXXXX.... ..++. ...+. ", 30 | " .XXXXX. ... . ", 31 | " ..... ", 32 | " ", 33 | " ", 34 | " ", 35 | " ", 36 | " ", 37 | " ", 38 | " ", 39 | " ", 40 | " ", 41 | " "}; 42 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtShred.m.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtShred_m_pm[] = { 3 | "32 32 4 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #000000000000", 6 | "X c #999999999999", 7 | "o c #CDCD00000000", 8 | " ", 9 | " ", 10 | " ", 11 | " .................... ", 12 | " .................... ", 13 | " ..XXXXXXXXXXXXXXXX.. ", 14 | " ..XX...X...X....oooooooooo", 15 | " ..XX...X...X..X..oooooooo ", 16 | " ..XXXXXXXXXXXXXXXXoooooo ", 17 | " ..XX...X...X...XXXXoooo ", 18 | " ..XXXXXXXXXXXXXXXXXXoo ", 19 | " ............................ ", 20 | " ............................ ", 21 | " X.XXXX XXXXXX XX.. ", 22 | " X.XX.. ....XX .... ", 23 | " .XXXX XXXXXX XX.. ", 24 | " .XX.. .X...X .X.. ", 25 | " .XXXX XXXXXX XX.. ", 26 | " .XX.. X...X. .X.. ", 27 | " XXXXX XXXXXX XX.. ", 28 | " XXXX.. ....XX .... ", 29 | " XXXX XXXXXX XXXX ", 30 | " XX.. ....XX ..XX ", 31 | " XXXX XXXX XXX ", 32 | " X.. .XX .XX ", 33 | " XX XX XX ", 34 | " X ", 35 | " ", 36 | " ", 37 | " ", 38 | " ", 39 | " "}; 40 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtShred.s.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtShred_s_xpm[] = { 3 | "16 16 4 1", 4 | " c #FFFFFFFFFFFF", 5 | ". c #000000000000", 6 | "X c #999999999999", 7 | "o c #CDCD00000000", 8 | " ", 9 | " .......... ", 10 | " .XXXXXXXX. ", 11 | " .X.X.X..ooooo", 12 | " .XXXXXXXXooo ", 13 | " .X.X.X..X.o ", 14 | " .............. ", 15 | " XXX XXX XX ", 16 | " XX. ..X .X ", 17 | " XX XXX XX ", 18 | " X. ..X .X ", 19 | " X X X ", 20 | " X ", 21 | " ", 22 | " ", 23 | " "}; 24 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtStyle.l.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtStyle_l_pm[] = { 3 | "48 48 10 1", 4 | " c None", 5 | "^ c #FFFFFF", 6 | ". c #999999", 7 | "X c #CCCCFC", 8 | "o c #4169E1", 9 | "O c #0000EE", 10 | "+ c #0AA10A", 11 | "@ c #FFFF00", 12 | "# c #FFD317", 13 | "$ c #E62A16", 14 | " ", 15 | " ", 16 | " ", 17 | " ........ ", 18 | " ...XoooXXXX.... ", 19 | " ..XXXoooooXXXOOOX.. ", 20 | " ..+++XXXoooXXXOOOOOXX.. ", 21 | " .X+++++XXXXXXXXXOOOXXXXX.", 22 | " .XXX+++XXXXXXXXXXXXXXXXXX.", 23 | " .XXXXXXXXXXXXXXXXXXXXXXXX. ", 24 | " ..... .@@@XXXXXXXXXXXXXXXXXXX.. ", 25 | " ..XX.XX.. .@@@@@XXXXXXXXXXXXXXXX.. ", 26 | " .XXXX.XXXX. .X@@@XXXXXXXXXXXXXXXX. ", 27 | " .XXXX...XXXX. .XXXXXXXXXXXXXXXXXXX. ", 28 | " .XXXX.XXX.XXXX. .XXXXXXXXXXXXXXXXXXXX... ", 29 | " .XXXX.XXX.XXXX. .X###XXXXXXXXXXXXXXXXXXX... ", 30 | " .XXXXX.XXX.XXXXX. .#####XXXXXXXXXXXXXXXXXXXXX.", 31 | " .XXXXX.XXX.XXXXX. .###XXXXXXXXXXXXXXXXXXXXXX.", 32 | " .XXXXXX...XXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXX.", 33 | " .XXXXXXX.XXXXXXX. .XXXXX$$$XXXXX^^^XXXXXXXX.", 34 | " ........X........ .XXX$$$$$XXX^^^^^XXXXXX. ", 35 | " .XXXXXXXXXXXXXXX. ..XX$$$XXXXX^^^XXXXX.. ", 36 | " .XXXXXXXXXXXXXXX. ..XXXXXXXXXXXXXX.. ", 37 | " .XXXXXXXXXXXXXXX. ...XXXXXXXX... ", 38 | " .XXXXXXXXXXXXXXX. ........ ", 39 | " .XXXXXXXXXXXXXXX. ", 40 | " .XXXXXXXXXXXXXXX. ", 41 | " .XXXXXXXXXXXXXXX. ", 42 | " .XXXXXXXXXXXXXXX. ", 43 | " .XXXXXXXXXXXXX. ", 44 | " .XXXXXXXXXXXXX. ", 45 | " .XXXXXXXXXXX. ", 46 | " .XXXXXXXXXXX. ", 47 | " .XXXXXXXXX. ", 48 | " .XXXXXXX. ", 49 | " ....... ", 50 | " .X. ... ", 51 | " .X. .XXX. ", 52 | " .X. .XX.XX. ", 53 | " .XX..XX. .X. ", 54 | " .XXXX. .X. ", 55 | " .... .X. ", 56 | " .X. ", 57 | " .X. ", 58 | " .X. ", 59 | " .X. ", 60 | " .X. ", 61 | " .X. "}; 62 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODtapp.l.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODtapp_l_pm[] = { 3 | "48 48 3 1", 4 | " c None", 5 | ". c #00000000CDCD", 6 | "X c #8B8B5A5A0000", 7 | " ", 8 | " ", 9 | " ", 10 | " ", 11 | " ", 12 | " .... ", 13 | " ...... ", 14 | " ...... ", 15 | " ....... ", 16 | " ......... ", 17 | " ......... ", 18 | " XX........ ", 19 | " XXXX........ ", 20 | " XXXXX........ ", 21 | " XXXXXXX...... ", 22 | " XXXXXXX .... ", 23 | " XXXXXX .. ", 24 | " XXXXXX ", 25 | " XXXXXX ", 26 | " XXXXX ", 27 | " XXXXX ", 28 | " XXXXX ", 29 | " XXXXX ", 30 | " XXXXX ", 31 | " XXXXXX ", 32 | " XXXXXX ", 33 | " XXXXXX ", 34 | " XXXXXX ", 35 | " XXXXXXX ", 36 | " XXXXXXX ", 37 | " XXXXXXX ", 38 | " XXXXXX ", 39 | " XXXXXX ", 40 | " XXXXXX ", 41 | " XXXXXX ", 42 | " XXXXXX ", 43 | " XXXXXX ", 44 | "XXXXXX ", 45 | "XXXXX ", 46 | "XXXX ", 47 | " XX ", 48 | " ", 49 | " ", 50 | " ", 51 | " ", 52 | " ", 53 | " ", 54 | " "}; 55 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODthelp.l.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODthelp_l_pm[] = { 3 | "48 48 7 1", 4 | " c None", 5 | ". c #000000008B8B", 6 | "X c #00000000CDCD", 7 | "o c #EEEE00000000", 8 | "O c #FFFFFFFFFFFF", 9 | "+ c #FFFFA5A50000", 10 | "@ c #8B8B5A5A0000", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " ", 18 | " .............. ", 19 | " .XXXXX..ooooo. ", 20 | " .XXXXX..ooooo. ", 21 | " .............XXXXX..ooooo. ", 22 | " .......oooo..oooo..XXXXX..ooooo. ", 23 | " .XXXX..oooo..oooo..XXXXX..ooooo. ", 24 | " .XXXX..oooo.OOOOo..XXXXX..ooooo. ", 25 | " .XXXX..ooooOOOOOO..XXXXX..ooooo.++ ", 26 | " .XXXX..oooOOOooOOO.XXXXX..ooooo.++ ", 27 | " .XXXX..ooOOO.oooOOOXXXXX..ooooo.++ ", 28 | " .XXXX..oooO..ooooOOXXXXX..ooooo.++ ", 29 | " .XXXX..oooo..ooooOOXXXXX..ooooo.++ ", 30 | " .XXXX..oooo..ooooOOXXXXX..ooooo.++ ", 31 | " . .XXXX..oooo..oooOOOXXXXX..ooooo.++ ", 32 | " .X. .XXXX..oooo..ooOOO.XXXXX..ooooo.++ ", 33 | " .XXX. .XXXX..oooo..oOOO..XXXXX..ooooo.++ ", 34 | " .XXXXX..XXXX..oooo..oOOo..XXXXX..ooooo.++ ", 35 | ".XXXXX. .XXXX..oooo..OOoo..XXXXX..ooooo.++ ", 36 | "XXXXX. .XXXX..oooo..OOoo..XXXXX..ooooo.++ ", 37 | "XXXX. .XXXX..oooo..OOoo..XXXXX..ooooo.++ ", 38 | "XXX. .XXXX..oooo..OOoo..XXXXX..ooooo.++ ", 39 | "XX. .XXXX..oooo..OOoo..XXXXX..ooooo.+++ ", 40 | "X. .XXXX..oooo..oooo..XXXXX..ooooo.+++ ", 41 | ". .XXXX..oooo..OOoo..XXXXX..ooooo.++++ ", 42 | " .XXXX..oooo..OOoo..XXXXX..ooooo.++ + ", 43 | " .XXXX..oooo..oooo..XXXXX..ooooo.++ ++ ", 44 | ".........XXXX..oooo..oooo..XXXXX..ooooo.++++++ ", 45 | " ..XXXX..oooo..oooo..XXXXX..ooooo.+++ ++ ", 46 | "OOOOOOO..XXXX..oooo..oooo..XXXXX..ooooo.++ ++", 47 | " ..XXXX..oooo..oooo..XXXXX..ooooo.++ ++", 48 | "OOOOOOO..XXXX..oooo..oooo..XXXXX..ooooo.++ ++ ", 49 | "........................................++++++++", 50 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 51 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 52 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 53 | " ", 54 | " ", 55 | " ", 56 | " ", 57 | " ", 58 | " "}; 59 | -------------------------------------------------------------------------------- /share/opencde/pixmaps/ODttrsh.l.pm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * ODttrsh_l_pm[] = { 3 | "48 48 5 1", 4 | " c None", 5 | ". c #CCCCEC", 6 | "X c #9999B9", 7 | "o c #333333", 8 | "O c #666666", 9 | " ", 10 | " ", 11 | " ", 12 | " ", 13 | " ", 14 | " ", 15 | " ", 16 | " ", 17 | " .X............... ", 18 | " ....X............... ", 19 | " ooo...X.X.X.X.X.X.X.X ", 20 | " OOOoo................X ", 21 | " OOOOOooooooooooooooooo ", 22 | " OOOOOX................ ", 23 | " OOOOOX................ ", 24 | " OOOOOX................ ", 25 | " OOOOOX................ ", 26 | " OOOOOX................ ", 27 | " OOOOOX................ ", 28 | " OOOOOX................ ", 29 | " OOOOOX................ ", 30 | " OOOOOX................ ", 31 | " OOOOOX................ ", 32 | " OOOOOX................ ", 33 | " OOOOOX................ ", 34 | " OOOOOX................ ", 35 | " OOOOOX................ ", 36 | " OOOOOX................ ", 37 | " OOOOOX................ ", 38 | " OOOOOX................ ", 39 | " OOOOOX................ ", 40 | " OOOOOX................ ", 41 | " OOOOOX................ ", 42 | " OOOOOX................ ", 43 | " OOOOOX................ ", 44 | " OOOOOX................ ", 45 | " OOOOX................ ", 46 | " OOOOX................ ", 47 | " OOX................ ", 48 | " ............... ", 49 | " ", 50 | " ", 51 | " ", 52 | " ", 53 | " ", 54 | " ", 55 | " ", 56 | " "}; 57 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | @${MAKE} -C libmotifmm 3 | @${MAKE} -C libopencde 4 | @${MAKE} -C dtpad global 5 | @${MAKE} -C dtlock 6 | @${MAKE} -C dtlogin 7 | @${MAKE} -C dtsplash 8 | @${MAKE} -C dtpanel 9 | @${MAKE} -C dtrun 10 | @${MAKE} -C dtfile 11 | 12 | clean: 13 | @${MAKE} -C libmotifmm clean 14 | @${MAKE} -C libopencde clean 15 | @${MAKE} -C dtpad clean 16 | rm ../bin/dtpad 17 | @${MAKE} -C dtlock clean 18 | @${MAKE} -C dtlogin clean 19 | @${MAKE} -C dtsplash clean 20 | @${MAKE} -C dtpanel clean 21 | @${MAKE} -C dtrun clean 22 | @${MAKE} -C dtfile clean 23 | -------------------------------------------------------------------------------- /src/dtfile/FileView.h: -------------------------------------------------------------------------------- 1 | #ifndef FILEVIEW_H 2 | #define FILEVIEW_H 3 | 4 | #include 5 | #include 6 | 7 | class FileWindow; 8 | class Item; 9 | class Rectangle; 10 | class FileView : public Motif::Custom 11 | { 12 | private: 13 | int hiddenCount; 14 | FileWindow* fileWindow; 15 | Motif::Panel* panel; 16 | Motif::ScrollBar* scroll; 17 | int virtualHeight; 18 | GC xorGC; 19 | int oldY; 20 | int oldX; 21 | int startX; 22 | int startY; 23 | std::auto_ptr selectionRect; 24 | OpenCDE::Ini* ini; 25 | XFontStruct* fontInfo; 26 | int lastClickTime; 27 | std::string path; 28 | 29 | Motif::auto_vector items; 30 | void drawSelectionRectangle(GC theGC, Rectangle* rect); 31 | void makeSelections(); 32 | 33 | std::vector typePixmaps; 34 | std::vector typeNames; 35 | Pixmap buffer; 36 | 37 | public: 38 | FileView(std::string name, Motif::Panel* panel, Motif::ScrollBar* scroll, OpenCDE::Ini* ini, FileWindow* fileWindow); 39 | ~FileView(); 40 | 41 | virtual void onExpose(Widget widget, XtPointer clientData, XtPointer callData); 42 | virtual void onResize(Widget widget, XtPointer clientData, XtPointer callData); 43 | virtual void onMotion(Widget widget, XtPointer clientData, XEvent* callData); 44 | virtual void onArm(Widget widget, XtPointer clientData, XEvent* callData); 45 | virtual void onDisarm(Widget widget, XtPointer clientData, XEvent* callData); 46 | 47 | void redraw(); 48 | void onDoubleClick(); 49 | void setPath(std::string path); 50 | std::string getPath(); 51 | Motif::auto_vector* getItems(); 52 | Pixmap getPixmapForType(std::string typeName); 53 | int getHiddenCount(); 54 | 55 | }; 56 | 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /src/dtfile/FileWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef FILEWINDOW_H 2 | #define FILEWINDOW_H 3 | 4 | #include 5 | #include 6 | 7 | class FileView; 8 | class FileWindow : public Motif::Window 9 | { 10 | private: 11 | std::auto_ptr statusPanel; 12 | std::auto_ptr mainPanel; 13 | std::auto_ptr filePanel; 14 | std::auto_ptr menuBar; 15 | 16 | std::auto_ptr filePulldownMenu; 17 | std::auto_ptr selectedPulldownMenu; 18 | std::auto_ptr viewPulldownMenu; 19 | std::auto_ptr helpPulldownMenu; 20 | std::auto_ptr newFolderButton; 21 | std::auto_ptr newFileButton; 22 | std::auto_ptr instanceButton; 23 | std::auto_ptr terminalButton; 24 | std::auto_ptr closeButton; 25 | std::auto_ptr helpButton; 26 | std::auto_ptr aboutButton; 27 | Motif::auto_vector separators; 28 | 29 | std::auto_ptr fileScroll; 30 | std::auto_ptr statusLabel; 31 | std::auto_ptr fileView; 32 | std::auto_ptr ini; 33 | 34 | public: 35 | FileWindow(std::string path); 36 | ~FileWindow(); 37 | 38 | void onClose(void* caller); 39 | void onScroll(void* caller); 40 | OpenCDE::Ini* getIni(); 41 | void onDirectoryChanged(FileView* caller); 42 | void onInstanceButtonClicked(void* caller); 43 | void onTerminalButtonClicked(void* caller); 44 | 45 | }; 46 | 47 | #endif 48 | 49 | -------------------------------------------------------------------------------- /src/dtfile/Item.h: -------------------------------------------------------------------------------- 1 | #ifndef ITEM_H 2 | #define ITEM_H 3 | 4 | #include 5 | 6 | class Rectangle; 7 | class FileView; 8 | 9 | class ItemType 10 | { 11 | public: 12 | static const int FILE = 0; 13 | static const int FOLDER = 1; 14 | 15 | }; 16 | 17 | class Item 18 | { 19 | private: 20 | std::string name; 21 | std::string fileType; 22 | int type; 23 | Pixmap pixmap; 24 | FileView* fileView; 25 | GC theGC; 26 | std::auto_ptr rect; 27 | std::auto_ptr iconRect; 28 | std::auto_ptr textRect; 29 | Widget widget; 30 | bool selected; 31 | int textWidth; 32 | int itemType; 33 | 34 | void drawRectangle(Pixmap buffer, Rectangle* rect, Pixel color); 35 | void drawRectangleNoBuffer(Rectangle* rect, Pixel color); 36 | void joinBoxes(Pixmap buffer, Rectangle* rect, Rectangle* rect2, Pixel color); 37 | void joinBoxesNoBuffer(Rectangle* rect, Rectangle* rect2, Pixel color); 38 | std::string getFileType(std::string name); 39 | 40 | public: 41 | Item(FileView* fileView, int itemType, std::string name); 42 | ~Item(); 43 | 44 | void draw(Pixmap buffer, int yOffset); 45 | bool isColliding(Rectangle* rectangle); 46 | bool isColliding(Rectangle* src, Rectangle* dest); 47 | Rectangle* getRectangle(); 48 | void setSelected(bool selected, int yOffset); 49 | bool getSelected(); 50 | int getItemType(); 51 | std::string getName(); 52 | std::string getFileType(); 53 | void setTextWidth(int textWidth); 54 | 55 | }; 56 | 57 | #endif 58 | 59 | -------------------------------------------------------------------------------- /src/dtfile/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o FileWindow.o FileView.o Rectangle.o Item.o 4 | OUT=../../bin/dtfile 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde -lX11 -lXm -lXpm -lXt 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../libmotifmm/include -I../libopencde/include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtfile/Rectangle.cpp: -------------------------------------------------------------------------------- 1 | #include "Rectangle.h" 2 | 3 | Rectangle::Rectangle() 4 | { 5 | x = 0; 6 | y = 0; 7 | width = 0; 8 | height = 0; 9 | } 10 | 11 | Rectangle::Rectangle(int x1, int y1, int x2, int y2) 12 | { 13 | x = 0; 14 | y = 0; 15 | width = 0; 16 | height = 0; 17 | 18 | if(x1 > x2) 19 | { 20 | x = x2; 21 | width = x1 - x; 22 | } 23 | else 24 | { 25 | x = x1; 26 | width = x2 - x; 27 | } 28 | 29 | if(y1 > y2) 30 | { 31 | y = y2; 32 | height = y1 - y; 33 | } 34 | else 35 | { 36 | y = y1; 37 | height = y2 - y; 38 | } 39 | } 40 | 41 | Rectangle::~Rectangle() 42 | { 43 | 44 | } 45 | 46 | int Rectangle::getWidth() 47 | { 48 | return width; 49 | } 50 | 51 | int Rectangle::getHeight() 52 | { 53 | return height; 54 | } 55 | 56 | int Rectangle::getX() 57 | { 58 | return x; 59 | } 60 | 61 | int Rectangle::getY() 62 | { 63 | return y; 64 | } 65 | 66 | void Rectangle::setWidth(int width) 67 | { 68 | this->width = width; 69 | } 70 | 71 | void Rectangle::setHeight(int height) 72 | { 73 | this->height = height; 74 | } 75 | 76 | void Rectangle::setX(int x) 77 | { 78 | this->x = x; 79 | } 80 | 81 | void Rectangle::setY(int y) 82 | { 83 | this->y = y; 84 | } 85 | 86 | -------------------------------------------------------------------------------- /src/dtfile/Rectangle.h: -------------------------------------------------------------------------------- 1 | #ifndef RECTANGLE_H 2 | #define RECTANGLE_H 3 | 4 | #include 5 | 6 | class Rectangle 7 | { 8 | private: 9 | int x; 10 | int y; 11 | int width; 12 | int height; 13 | 14 | public: 15 | Rectangle(); 16 | Rectangle(int x1, int y1, int x2, int y2); 17 | ~Rectangle(); 18 | 19 | int getX(); 20 | int getY(); 21 | int getWidth(); 22 | int getHeight(); 23 | void setWidth(int width); 24 | void setHeight(int height); 25 | void setX(int x); 26 | void setY(int y); 27 | 28 | }; 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /src/dtfile/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "FileWindow.h" 5 | 6 | void safe_main(int argc, char* argv[]) 7 | { 8 | OpenCDE::Environment::initialize(argc, argv); 9 | Motif::Application::addResources(OpenCDE::Environment::getPrefix() + "/share/opencde/app-defaults/Dtfile"); 10 | 11 | /* 12 | Motif::Application::addFallbackResource("*shadowThickness: 1"); 13 | Motif::Application::addFallbackResource("*highlightThickness: 2"); 14 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 15 | Motif::Application::addFallbackResource("*background: #AEB2C3"); 16 | Motif::Application::addFallbackResource("*fileView.background: #9397a5"); 17 | Motif::Application::addFallbackResource("*fontList: -*-helvetica-*-r-*-*-12-*-*-*-*-*-*-*"); 18 | */ 19 | 20 | Motif::Application::initialize("Dtfile", argc, argv); 21 | 22 | try 23 | { 24 | if(argc > 1) 25 | { 26 | new FileWindow(std::string(argv[1])); 27 | } 28 | else 29 | { 30 | new FileWindow(OpenCDE::Environment::getHome()); 31 | } 32 | } 33 | catch(std::exception& e) 34 | { 35 | new OpenCDE::ExceptionDialog(e.what(), "No additional information"); 36 | //Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 37 | } 38 | 39 | Motif::Application::run(); 40 | } 41 | 42 | int main(int argc, char* argv[]) 43 | { 44 | try 45 | { 46 | safe_main(argc, argv); 47 | 48 | return 0; 49 | } 50 | catch(std::exception& e) 51 | { 52 | std::cout << "Exception: " << e.what() << std::endl; 53 | 54 | return 1; 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /src/dtlock/LockDialog.h: -------------------------------------------------------------------------------- 1 | #ifndef LOCKDIALOG_H 2 | #define LOCKDIALOG_H 3 | 4 | #include 5 | 6 | class LockDialog : public Motif::Dialog 7 | { 8 | private: 9 | std::auto_ptr dialogPanel; 10 | std::auto_ptr passwordPanel; 11 | std::auto_ptr password; 12 | std::auto_ptr vendorLogoPanel; 13 | std::auto_ptr vendorLogoLabel; 14 | std::auto_ptr passwordLabel; 15 | std::auto_ptr userInformationLabel; 16 | std::auto_ptr informationLabel; 17 | 18 | public: 19 | LockDialog(); 20 | ~LockDialog(); 21 | 22 | void onShow(void* caller); 23 | void onClose(void* caller); 24 | void onPasswordActivate(void* caller); 25 | 26 | }; 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /src/dtlock/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o LockDialog.o 4 | OUT=../../bin/dtlock 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde -lcrypt 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../../include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtlock/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "LockDialog.h" 5 | 6 | void safe_main(int argc, char* argv[]) 7 | { 8 | OpenCDE::Environment::initialize(argc, argv); 9 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 10 | Motif::Application::addFallbackResource("*background: #AEB2C3"); 11 | Motif::Application::addFallbackResource("*lockDialog*fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 12 | Motif::Application::addFallbackResource("*lockDialog.background: Black"); 13 | Motif::Application::addFallbackResource("*password.background: Gray50"); 14 | Motif::Application::initialize("Dtlock", argc, argv); 15 | 16 | try 17 | { 18 | new LockDialog(); 19 | } 20 | catch(std::exception& e) 21 | { 22 | //Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 23 | new OpenCDE::ExceptionDialog(e.what(), "The probable cause for this exception is that\nOpenCDE has not been fully installed.\nThe 'dtlock' application must be set to 'rwxs'"); 24 | } 25 | 26 | Motif::Application::run(); 27 | } 28 | 29 | int main(int argc, char* argv[]) 30 | { 31 | try 32 | { 33 | safe_main(argc, argv); 34 | 35 | return 0; 36 | } 37 | catch(std::exception& e) 38 | { 39 | std::cout << "Exception: " << e.what() << std::endl; 40 | 41 | return 1; 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /src/dtlogin/LoginWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGINWINDOW_H 2 | #define LOGINWINDOW_H 3 | 4 | #include 5 | 6 | class LoginWindow : public Motif::Window 7 | { 8 | private: 9 | std::auto_ptr containerPanel; 10 | std::auto_ptr passwordPanel; 11 | std::auto_ptr password; 12 | std::auto_ptr text; 13 | std::auto_ptr okButton; 14 | std::auto_ptr startOverButton; 15 | std::auto_ptr shutdownButton; 16 | std::auto_ptr restartButton; 17 | std::auto_ptr informationLabel; 18 | std::auto_ptr userInformationLabel; 19 | 20 | std::auto_ptr vendorLogoPanel; 21 | std::auto_ptr vendorLogoLabel; 22 | 23 | bool userEntry; 24 | 25 | public: 26 | LoginWindow(); 27 | ~LoginWindow(); 28 | 29 | void onShow(void* caller); 30 | void onClose(void* caller); 31 | void onTextActivate(void* caller); 32 | void onPasswordActivate(void* caller); 33 | void onOkButtonActivate(void* caller); 34 | void onStartOverButtonActivate(void* caller); 35 | void onShutdownButtonActivate(void* caller); 36 | void onRestartButtonActivate(void* caller); 37 | 38 | }; 39 | 40 | #endif 41 | 42 | -------------------------------------------------------------------------------- /src/dtlogin/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o LoginWindow.o 4 | OUT=../../bin/dtlogin 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde -lcrypt 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../../include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtlogin/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "LoginWindow.h" 6 | 7 | void print_usage(const char *prgName); 8 | 9 | void split(int argc, char* argv[], bool daemonize) 10 | { 11 | int pid = 0; 12 | 13 | if(daemonize) 14 | { 15 | pid = fork(); 16 | } 17 | 18 | if(pid != 0) 19 | { 20 | exit(0); 21 | } 22 | 23 | while(true) 24 | { 25 | OpenCDE::Shell::execute("xinit " + OpenCDE::Environment::getPrefix() + "/share/opencde/dtlogin/scripts/xinitrc"); 26 | } 27 | 28 | exit(0); 29 | } 30 | 31 | void safe_main(int argc, char* argv[]) 32 | { 33 | OpenCDE::Environment::initialize(argc, argv); 34 | 35 | if(geteuid() != 0) 36 | { 37 | throw OpenCDE::OpenCDEException("This application must be run as root"); 38 | } 39 | 40 | /* parse command line args */ 41 | 42 | bool daemonize = true; 43 | bool internal = false; 44 | 45 | int i; 46 | char *prgName = argv[0]; 47 | for (i = 0; i < argc; i++) 48 | { 49 | if (! strcmp("-nodaemon", argv[i])) 50 | { 51 | daemonize = false; 52 | } 53 | else if (! strcmp("-internal_dont_specify", argv[i])) 54 | { 55 | internal = true; 56 | } 57 | else if (! strcmp("-h", argv[i]) || i > 0) 58 | { 59 | /* unknown option, or -h specified */ 60 | print_usage(prgName); 61 | } 62 | } 63 | 64 | if(! internal) 65 | { 66 | split(argc, argv, daemonize); 67 | } 68 | 69 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 70 | Motif::Application::addFallbackResource("*background: #AEB2C3"); 71 | Motif::Application::addFallbackResource("*password.fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 72 | Motif::Application::addFallbackResource("*usernameText.fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 73 | Motif::Application::addFallbackResource("*okButton.fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 74 | Motif::Application::addFallbackResource("*startOverButton.fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 75 | Motif::Application::addFallbackResource("*informationLabel.fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 76 | Motif::Application::addFallbackResource("*userInformationLabel.fontList: -*-fixed-*-*-*-20-*"); 77 | Motif::Application::addFallbackResource("*usernameText.background: Gray50"); 78 | Motif::Application::addFallbackResource("*password.background: Gray50"); 79 | Motif::Application::addFallbackResource("*loginWindow.background: Black"); 80 | Motif::Application::initialize("Dtlogin", argc, argv); 81 | 82 | try 83 | { 84 | new LoginWindow(); 85 | } 86 | catch(std::exception& e) 87 | { 88 | Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 89 | } 90 | 91 | Motif::Application::run(); 92 | } 93 | 94 | int main(int argc, char* argv[]) 95 | { 96 | try 97 | { 98 | safe_main(argc, argv); 99 | 100 | return 0; 101 | } 102 | catch(std::exception& e) 103 | { 104 | std::cout << "Exception: " << e.what() << std::endl; 105 | 106 | return 1; 107 | } 108 | } 109 | 110 | void print_usage(const char *prgName) 111 | { 112 | std::cout << "Usage: " << std::string(prgName) << " [-nodaemon]" << std::endl; 113 | exit(0); 114 | } 115 | -------------------------------------------------------------------------------- /src/dtpad/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Aaron W. Hsu 2 | 3 | Permission to use, copy, modify, and distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 10 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 12 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 13 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /src/dtpad/Makefile: -------------------------------------------------------------------------------- 1 | 2 | # Begin user code block 3 | include ../../config.Mk 4 | # End user code block 5 | 6 | # 7 | # README: Portions of this file are merged at file generation 8 | # time. Edits can be made *only* in between specified code blocks, look 9 | # for keywords and . 10 | # 11 | # 12 | # Created by BuilderXcessory PRO Version 6.2 13 | # Generated by Code Generator Xcessory 6.2 (08/06/08) 14 | # 15 | # 16 | 17 | # Begin user code block 18 | 19 | USER_SRCS = utilities.c 20 | USER_OBJS = utilities.o 21 | # USER_CFLAGS = 22 | # USER_LIBRARIES = 23 | # DTPAD_ARGS = 24 | 25 | # End user code block 26 | 27 | RM = rm -f 28 | CC = gcc 29 | CFLAGS = $(USER_CFLAGS) 30 | LIBS = $(USER_LIBRARIES) -lXm -lXt -lSM -lICE -lXp -lXext -lX11 -lm 31 | 32 | OFILES = $(USER_OBJS) \ 33 | main.o \ 34 | creation.o \ 35 | callbacks.o \ 36 | bxutils.o 37 | 38 | FILES = $(USER_SRCS) \ 39 | main.c \ 40 | creation.c \ 41 | callbacks.c \ 42 | bxutils.c 43 | 44 | # User-specified options: 45 | 46 | 47 | all: dtpad 48 | 49 | dtpad: $(OFILES) 50 | $(CC) $(CFLAGS) $(OFILES) $(LIBS) -o $@ 51 | 52 | ocodecenter:: 53 | #load $(CFLAGS) $(OFILES) $(LIBS) 54 | 55 | codecenter:: 56 | #load $(CFLAGS) $(FILES) $(LIBS) 57 | 58 | clean:: 59 | $(RM) $(OFILES) dtpad 60 | 61 | # Begin user code block 62 | global: all 63 | cp -f ./dtpad ../../bin/ 64 | cp -f Dtpad ../../share/opencde/app-defaults/ 65 | 66 | run: dtpad 67 | XAPPLRESDIR=./ ./dtpad ${DTPAD_ARGS} 68 | 69 | run_debug: dtpad 70 | XAPPLRESDIR=./ gdb ./dtpad 71 | # End user code block 72 | -------------------------------------------------------------------------------- /src/dtpad/Todo: -------------------------------------------------------------------------------- 1 | Spell Checking 2 | Wrapping to Fit 3 | Printing 4 | Status bar does not update on line count change 5 | Keyboard shortcuts 6 | Help buttons 7 | Format menu is not functional 8 | Man page needs to be written 9 | Overstrike set by insert key does not change GUI state. 10 | Internationalize title bar name 11 | Improve the consistency of the statusBar label styles 12 | Handle Dirty flag for prompting of saves 13 | Make cursors match up when switching from wrap to fit and back. 14 | -------------------------------------------------------------------------------- /src/dtpad/creation.h: -------------------------------------------------------------------------------- 1 | 2 | /* Begin user code block */ 3 | /* End user code block */ 4 | 5 | /** 6 | * README: Portions of this file are merged at file generation 7 | * time. Edits can be made *only* in between specified code blocks, look 8 | * for keywords and . 9 | */ 10 | /* 11 | * 12 | * Created by BuilderXcessory PRO Version 6.2 13 | * Generated by Code Generator Xcessory 6.2 (08/06/08) 14 | * 15 | */ 16 | #ifndef creation_H 17 | #define creation_H 18 | 19 | Widget CreatemainWindow(Widget parent); 20 | 21 | #define FNDLG_CHANGE 1 22 | #define FNDLG_FIND 0 23 | #define EDIT_COPY 0 24 | #define FNDLG_CHANGEALL 2 25 | #define EDIT_CLEAR 5 26 | #define EDIT_CUT 1 27 | #define EDIT_DELETE 4 28 | #define EDIT_PASTE 3 29 | #endif 30 | -------------------------------------------------------------------------------- /src/dtpad/utilities.h: -------------------------------------------------------------------------------- 1 | void manage_widget(Widget, char *, char *); 2 | Widget get_widget_by_name(Widget, char *, char *); 3 | long str_linecount(char *); 4 | char *long_to_string(long n); 5 | void update_message(Widget, char *, char *); 6 | char *get_file_contents(Widget, char *, char *); 7 | void update_document_linecount(Widget, char *); 8 | void set_save_path(char *); 9 | char *get_save_path(); 10 | int save_file(Widget, char *); 11 | Boolean document_find(Widget, char *, XEvent *, char *); 12 | void document_change(Widget, char *, XEvent *); 13 | void document_changeall(Widget, char *, XEvent *); 14 | void set_backup_on_save(Boolean); 15 | void set_been_saved(Boolean); 16 | void set_file_dirty(Boolean); 17 | Widget get_document_text(Widget, char *); 18 | XmTextPosition line_to_position(char *, short, short, short); 19 | Boolean isWrap(Widget, char *); 20 | void load_file(Widget, char *, char *); 21 | void update_window_title(Widget, char *); 22 | void set_app_name(char *); 23 | char *get_app_name(); 24 | void batch_wrap(Widget, char *, char *, int *, XmTextPosition); 25 | void edit_clear(Widget); 26 | void toggle_overstrike_gui(Widget, XEvent *, String *, Cardinal); 27 | -------------------------------------------------------------------------------- /src/dtpanel/ExitDialog.h: -------------------------------------------------------------------------------- 1 | #ifndef EXITDIALOG_H 2 | #define EXITDIALOG_H 3 | 4 | #include 5 | #include 6 | 7 | class PanelWindow; 8 | class ExitDialog : public Motif::Dialog 9 | { 10 | private: 11 | PanelWindow* panelWindow; 12 | std::auto_ptr labelPanel; 13 | std::auto_ptr buttonsPanel; 14 | std::auto_ptr iconLabel; 15 | std::auto_ptr exitLabel; 16 | std::auto_ptr okButton; 17 | std::auto_ptr cancelButton; 18 | std::auto_ptr helpButton; 19 | 20 | public: 21 | ExitDialog(PanelWindow* panelWindow); 22 | ~ExitDialog(); 23 | 24 | void onClose(void* caller); 25 | void onOkButtonClicked(void* caller); 26 | void onCancelButtonClicked(void* caller); 27 | void onHelpButtonClicked(void* caller); 28 | }; 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /src/dtpanel/Grab.cpp: -------------------------------------------------------------------------------- 1 | #include "Grab.h" 2 | 3 | Grab::Grab(std::string name, Motif::Panel* panel, Motif::Window* window) : Motif::Custom(name, panel) 4 | { 5 | currentX = 0; 6 | currentY = 0; 7 | this->window = window; 8 | } 9 | 10 | Grab::~Grab() 11 | { 12 | 13 | } 14 | 15 | void Grab::onMotion(Widget widget, XtPointer clientData, XEvent* callData) 16 | { 17 | XPointerMovedEvent* pme = (XPointerMovedEvent*)callData; 18 | 19 | int amountX = pme->x_root - currentX; 20 | int amountY = pme->y_root - currentY; 21 | 22 | window->setX(window->getX() + amountX); 23 | window->setY(window->getY() + amountY); 24 | 25 | currentX = pme->x_root; 26 | currentY = pme->y_root; 27 | } 28 | 29 | void Grab::onArm(Widget widget, XtPointer clientData, XEvent* callData) 30 | { 31 | XPointerMovedEvent* pme = (XPointerMovedEvent*)callData; 32 | 33 | currentX = pme->x_root; 34 | currentY = pme->y_root; 35 | } 36 | 37 | void Grab::onExpose(Widget widget, XtPointer clientData, XtPointer callData) 38 | { 39 | int height = getHeight(); 40 | int width = getWidth(); 41 | 42 | Motif::Color color(getBackground()); 43 | 44 | Colormap cmap = DefaultColormapOfScreen(XtScreen(Motif::Application::getWidget())); 45 | Pixel bg; 46 | Pixel top; 47 | Pixel btm; 48 | Pixel hig; 49 | XmGetColors(XtScreen(Motif::Application::getWidget()), cmap, color.getPixel(), &bg, &top, &btm, &hig); 50 | 51 | XSetForeground(XtDisplay(widget), gc, btm); 52 | 53 | for(int index = 0; index < height; index+=2) 54 | { 55 | XDrawLine(XtDisplay(widget), XtWindow(widget), gc, 0, index, width, index); 56 | } 57 | 58 | XSetForeground(XtDisplay(widget), gc, top); 59 | 60 | for(int index = 1; index < height; index+=2) 61 | { 62 | XDrawLine(XtDisplay(widget), XtWindow(widget), gc, 0, index, width, index); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/dtpanel/Grab.h: -------------------------------------------------------------------------------- 1 | #ifndef GRAB_H 2 | #define GRAB_H 3 | 4 | #include 5 | 6 | class Grab : public Motif::Custom 7 | { 8 | private: 9 | Motif::Window* window; 10 | int currentX; 11 | int currentY; 12 | 13 | public: 14 | Grab(std::string name, Motif::Panel* panel, Motif::Window* window); 15 | ~Grab(); 16 | 17 | virtual void onExpose(Widget widget, XtPointer clientData, XtPointer callData); 18 | virtual void onMotion(Widget widget, XtPointer clientData, XEvent* callData); 19 | virtual void onArm(Widget widget, XtPointer clientData, XEvent* callData); 20 | 21 | }; 22 | 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /src/dtpanel/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o PanelWindow.o ExitDialog.o Grab.o MenuWindow.o 4 | OUT=../../bin/dtpanel 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde -lX11 -lXm -lXpm -lXt 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../libmotifmm/include -I../libopencde/include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtpanel/MenuWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MENUWINDOW_H 2 | #define MENUWINDOW_H 3 | 4 | #include 5 | #include 6 | 7 | class PanelWindow; 8 | class MenuWindow : public Motif::Window 9 | { 10 | private: 11 | std::vector menuEntries; 12 | Motif::Button* menuButton; 13 | int borderHeight; 14 | int targetHeight; 15 | std::string name; 16 | PanelWindow* panelWindow; 17 | Motif::auto_vector entryButtons; 18 | std::auto_ptr slideTimer; 19 | 20 | public: 21 | MenuWindow(PanelWindow* panelWindow, Motif::Button* menuButton, std::string name); 22 | ~MenuWindow(); 23 | 24 | std::string getName(); 25 | Motif::Button* getMenuButton(); 26 | void onClose(void* caller); 27 | void onShow(void* caller); 28 | void onEntryButtonClicked(void* caller); 29 | void onSlideInterval(void* caller); 30 | 31 | }; 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /src/dtpanel/PanelWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef PANELWINDOW_H 2 | #define PANELWINDOW_H 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | 9 | #include "ExitDialog.h" 10 | 11 | class MenuWindow; 12 | class Grab; 13 | class PanelWindow : public Motif::Window 14 | { 15 | private: 16 | /* total width of desktop buttons (includes padding, shadow, etc.) */ 17 | static const int DESKTOP_BTN_WIDTH = 130; 18 | 19 | std::auto_ptr ini; 20 | std::auto_ptr exitDialog; 21 | 22 | std::auto_ptr menusPanel; 23 | std::auto_ptr iconsPanel; 24 | std::auto_ptr desktopsPanel; 25 | bool hasDesktopsPanel; 26 | 27 | std::vector menuEntries; 28 | Motif::auto_vector menuPanels; 29 | Motif::auto_vector menuButtons; 30 | Motif::auto_vector iconButtons; 31 | 32 | std::vector desktopEntries; 33 | Motif::auto_vector desktopPanels; 34 | Motif::auto_vector desktopButtons; 35 | std::auto_ptr exitButton; 36 | std::auto_ptr lockButton; 37 | std::auto_ptr leftGrab; 38 | std::auto_ptr rightGrab; 39 | std::auto_ptr minimizeButton; 40 | Motif::auto_vector menuWindows; 41 | 42 | int clockButtonIndex; 43 | std::auto_ptr clockTimer; 44 | int calButtonIndex; 45 | std::auto_ptr calTimer; 46 | Pixmap clockPixmap; 47 | 48 | void drawClockHands(XPoint* hour, XPoint* minute, int points); 49 | 50 | public: 51 | PanelWindow(); 52 | ~PanelWindow(); 53 | 54 | void onFocus(void* caller); 55 | void onUnfocus(void* caller); 56 | void onClose(void* caller); 57 | void onShown(void* caller); 58 | 59 | void onMenuButtonArmed(void* caller); 60 | void onMenuButtonDisarmed(void* caller); 61 | void onMenuButtonClicked(void* caller); 62 | void onLockButtonClicked(void* caller); 63 | void onMinimizeButtonClicked(void* caller); 64 | void onExitButtonClicked(void* caller); 65 | void onExitDialogClose(void* caller); 66 | void onIconButtonClicked(void* caller); 67 | void onDesktopButtonClicked(void* caller); 68 | void onMenuWindowClose(MenuWindow* menuWindow); 69 | void onClockTimerTick(void* caller); 70 | void onCalTimerTick(void* caller); 71 | 72 | OpenCDE::Ini* getIni(); 73 | 74 | }; 75 | 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /src/dtpanel/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "PanelWindow.h" 5 | 6 | void safe_main(int argc, char* argv[]) 7 | { 8 | OpenCDE::Environment::initialize(argc, argv); 9 | Motif::Application::addResources(OpenCDE::Environment::getPrefix() + "/share/opencde/app-defaults/Dtpanel"); 10 | 11 | /* 12 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 13 | Motif::Application::addFallbackResource("*background: #AEB2C3"); 14 | //Motif::Application::addFallbackResource("*panelWindow.background: Orange"); 15 | Motif::Application::addFallbackResource("*exitDialog*fontList: -*-helvetica-*-r-*-*-14-*-*-*-*-*-*-*"); 16 | Motif::Application::addFallbackResource("*desktopsPanel*desktopButton.background: #6366AB"); 17 | Motif::Application::addFallbackResource("*desktopsPanel*fontList: -*-helvetica-*-r-*-*-14-*-*-*-*-*-*-*"); 18 | Motif::Application::addFallbackResource("*menuWindow*fontList: -*-helvetica-*-r-*-*-13-*-*-*-*-*-*-*"); 19 | Motif::Application::addFallbackResource("*menuWindow*foreground: White"); 20 | */ 21 | 22 | Motif::Application::initialize("Dtpanel", argc, argv); 23 | 24 | try 25 | { 26 | new PanelWindow(); 27 | } 28 | catch(std::exception& e) 29 | { 30 | //Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 31 | new OpenCDE::ExceptionDialog(e.what(), "No additional information"); 32 | } 33 | 34 | Motif::Application::run(); 35 | } 36 | 37 | int main(int argc, char* argv[]) 38 | { 39 | try 40 | { 41 | safe_main(argc, argv); 42 | 43 | return 0; 44 | } 45 | catch(std::exception& e) 46 | { 47 | std::cout << "Exception: " << e.what() << std::endl; 48 | 49 | return 1; 50 | } 51 | } 52 | 53 | -------------------------------------------------------------------------------- /src/dtrun/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o RunWindow.o 4 | OUT=../../bin/dtrun 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../../include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtrun/RunWindow.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNWINDOW_H 2 | #define RUNWINDOW_H 3 | 4 | #include 5 | 6 | class RunWindow : public Motif::Window 7 | { 8 | private: 9 | static const int width = 360; 10 | static const int height = 50; 11 | std::auto_ptr mainPanel; 12 | std::auto_ptr pathText; 13 | std::auto_ptr runButton; 14 | std::auto_ptr closeButton; 15 | 16 | public: 17 | RunWindow(); 18 | ~RunWindow(); 19 | 20 | void onClose(void* caller); 21 | void onRunButtonPressed(void* caller); 22 | 23 | }; 24 | 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /src/dtrun/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "RunWindow.h" 5 | 6 | void safe_main(int argc, char* argv[]) 7 | { 8 | OpenCDE::Environment::initialize(argc, argv); 9 | Motif::Application::addFallbackResource("*shadowThickness: 1"); 10 | Motif::Application::addFallbackResource("*highlightThickness: 2"); 11 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 12 | Motif::Application::addFallbackResource("*background: #AEB2C3"); 13 | Motif::Application::addFallbackResource("*editorScrolledText.background: White"); 14 | Motif::Application::initialize("Dtrun", argc, argv); 15 | 16 | try 17 | { 18 | new RunWindow(); 19 | } 20 | catch(std::exception& e) 21 | { 22 | Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 23 | } 24 | 25 | Motif::Application::run(); 26 | } 27 | 28 | int main(int argc, char* argv[]) 29 | { 30 | try 31 | { 32 | safe_main(argc, argv); 33 | 34 | return 0; 35 | } 36 | catch(std::exception& e) 37 | { 38 | std::cout << "Exception: " << e.what() << std::endl; 39 | 40 | return 1; 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /src/dtsplash/.SplashDialog.cpp.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenCDE/opencde/4bb0f65dab345790bcf8d8422a05dda495990cd1/src/dtsplash/.SplashDialog.cpp.swp -------------------------------------------------------------------------------- /src/dtsplash/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=main.o SplashDialog.o 4 | OUT=../../bin/dtsplash 5 | 6 | .SUFFIXES: .o 7 | 8 | .PHONY: all 9 | all: ${OUT} 10 | 11 | ${OUT}: ${OBJ} 12 | ${CPP} -o ${OUT} ${OBJ} -L../../lib ${LDFLAGS} -lmotifmm -lopencde 13 | 14 | .cpp.o: 15 | ${CPP} ${CPPFLAGS} -DPLATFORM_${PLATFORM} -c -I../../include $< -o $@ 16 | 17 | .PHONY: clean 18 | clean: 19 | rm -f ${OUT} ${OBJ} 20 | -------------------------------------------------------------------------------- /src/dtsplash/SplashDialog.cpp: -------------------------------------------------------------------------------- 1 | #include "SplashDialog.h" 2 | 3 | #include 4 | 5 | SplashDialog::SplashDialog() : Motif::Dialog("splashDialog") 6 | { 7 | SplashDialog::init(DEFAULT_SPLASH_TIME); 8 | } 9 | 10 | SplashDialog::SplashDialog(unsigned int seconds) : Motif::Dialog("splashDialog") 11 | { 12 | SplashDialog::init(seconds); 13 | } 14 | 15 | void SplashDialog::init(unsigned int seconds) 16 | { 17 | setStyle(Motif::Style::SYSTEM); 18 | setDecorations(Motif::Decorations::NONE); 19 | setWidth(Motif::Application::getScreenWidth()); 20 | setHeight(Motif::Application::getScreenHeight()); 21 | setX(0); 22 | setY(0); 23 | //setResizable(false); 24 | //setMovable(false); 25 | setMwmFunctions(0); 26 | getContentPanel()->setShadowThickness(0); 27 | 28 | vendorLogoPanel.reset(new Motif::Panel("vendorLogoPanel", getContentPanel())); 29 | vendorLogoPanel->setTopAttachment(Motif::Attachment::FORM); 30 | vendorLogoPanel->setBottomAttachment(Motif::Attachment::FORM); 31 | vendorLogoPanel->setTopOffset((Motif::Application::getScreenHeight() / 2) - (128 / 2)); 32 | //vendorLogoPanel->setBottomOffset((Motif::Application::getScreenHeight() / 2) + (128 / 2)); 33 | vendorLogoPanel->setWidth(520); 34 | vendorLogoPanel->setShadowThickness(0); 35 | 36 | /* 37 | dialogPanel->setTopAttachment(Motif::Attachment::FORM); 38 | dialogPanel->setLeftAttachment(Motif::Attachment::FORM); 39 | dialogPanel->setRightAttachment(Motif::Attachment::FORM); 40 | dialogPanel->setBottomAttachment(Motif::Attachment::FORM); 41 | dialogPanel->setLeftOffset((totalWidth - panelWidth)/2); 42 | dialogPanel->setRightOffset((totalWidth - panelWidth)/2); 43 | dialogPanel->setBottomOffset((totalHeight - panelHeight)/2); 44 | dialogPanel->setTopOffset((totalHeight - panelHeight)/2); 45 | */ 46 | 47 | vendorLogoLabel.reset(new Motif::Label("vendorLogoLabel", vendorLogoPanel.get())); 48 | vendorLogoLabel->setPixmap(OpenCDE::Environment::getPrefix() + "/share/opencde/pixmaps/Welcome.xpm"); 49 | vendorLogoLabel->setY(4); 50 | vendorLogoLabel->setX(4); 51 | vendorLogoLabel->setWidth(512); 52 | vendorLogoLabel->setHeight(128); 53 | 54 | 55 | /* set up our timer to exit */ 56 | int ms = seconds * 1000; 57 | timer.reset(new Motif::Timer()); 58 | timer->setIntervalFunction(FUNCTION(SplashDialog::onTimerTick)); 59 | timer->start(ms); 60 | 61 | setVisible(true); 62 | } 63 | 64 | SplashDialog::~SplashDialog() 65 | { 66 | 67 | } 68 | 69 | void SplashDialog::onTimerTick(void* caller) 70 | { 71 | exit(0); 72 | } 73 | 74 | -------------------------------------------------------------------------------- /src/dtsplash/SplashDialog.h: -------------------------------------------------------------------------------- 1 | #ifndef SPLASHDIALOG_H 2 | #define SPLASHDIALOG_H 3 | 4 | #include 5 | 6 | class SplashDialog : public Motif::Dialog 7 | { 8 | private: 9 | /** Default length of time to display the splash screen (seconds.) */ 10 | static const int DEFAULT_SPLASH_TIME = 3; 11 | std::auto_ptr vendorLogoPanel; 12 | std::auto_ptr vendorLogoLabel; 13 | std::auto_ptr timer; 14 | void init(unsigned int seconds); 15 | 16 | public: 17 | SplashDialog(); 18 | SplashDialog(unsigned int seconds); 19 | ~SplashDialog(); 20 | 21 | void onTimerTick(void* caller); 22 | 23 | }; 24 | 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /src/dtsplash/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "SplashDialog.h" 6 | 7 | void print_usage(); 8 | 9 | void safe_main(int argc, char* argv[]) 10 | { 11 | OpenCDE::Environment::initialize(argc, argv); 12 | Motif::Application::addFallbackResource("*highlightColor: #B24D7A"); 13 | Motif::Application::addFallbackResource("*background: #1A1866"); 14 | Motif::Application::addFallbackResource("*lockDialog*fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 15 | Motif::Application::addFallbackResource("*lockDialog.background: Black"); 16 | Motif::Application::addFallbackResource("*password.background: Gray50"); 17 | Motif::Application::initialize("Dtsplash", argc, argv); 18 | 19 | /* parse command line args */ 20 | int c; 21 | extern char *optarg; 22 | int seconds = -1; 23 | 24 | while ((c = getopt(argc, argv, "s:h?")) != -1) 25 | { 26 | switch (c) 27 | { 28 | case 's': 29 | seconds = atoi(optarg); 30 | break; 31 | case 'h': 32 | case '?': 33 | print_usage(); 34 | break; 35 | } 36 | } 37 | 38 | try 39 | { 40 | if (seconds < 1) { 41 | new SplashDialog(); 42 | } 43 | else 44 | { 45 | new SplashDialog(seconds); 46 | } 47 | } 48 | catch(std::exception& e) 49 | { 50 | Motif::MessageBox::show("exceptionMessageBox", e.what(), "Exception", Motif::MessageBoxType::ERROR); 51 | } 52 | 53 | Motif::Application::run(); 54 | } 55 | 56 | int main(int argc, char* argv[]) 57 | { 58 | try 59 | { 60 | safe_main(argc, argv); 61 | 62 | return 0; 63 | } 64 | catch(std::exception& e) 65 | { 66 | std::cout << "Exception: " << e.what() << std::endl; 67 | 68 | return 1; 69 | } 70 | } 71 | 72 | void print_usage() 73 | { 74 | std::cout << "Usage: dtsplash [-s seconds] [-h]" << std::endl; 75 | exit(0); 76 | } 77 | 78 | -------------------------------------------------------------------------------- /src/libmotifmm/Application.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | bool Application::initialized = false; 7 | XtAppContext Application::context; 8 | Widget Application::widget; 9 | std::string Application::name; 10 | Display* Application::display = NULL; 11 | std::vector Application::fallbackResources; 12 | 13 | void Application::initialize(std::string name, int argc, char* argv[]) 14 | { 15 | String fallbacks[fallbackResources.size() + 1]; 16 | XtToolkitInitialize(); 17 | context = XtCreateApplicationContext(); 18 | 19 | for(unsigned int resourceIndex = 0; resourceIndex < fallbackResources.size(); resourceIndex++) 20 | { 21 | fallbacks[resourceIndex] = (char*)fallbackResources.at(resourceIndex).c_str(); 22 | } 23 | 24 | fallbacks[fallbackResources.size()] = NULL; 25 | 26 | XtAppSetFallbackResources(context, fallbacks); 27 | Application::name = name; 28 | 29 | display = XtOpenDisplay(context, NULL, name.c_str(), name.c_str(), NULL, 0, &argc, argv); 30 | 31 | if(display == NULL) 32 | { 33 | throw MotifException("Failed to open display"); 34 | } 35 | 36 | initialized = true; 37 | 38 | widget = XtAppCreateShell(Application::getName().c_str(), Application::getName().c_str(), applicationShellWidgetClass, Application::getDisplay(), NULL, 0); 39 | 40 | } 41 | 42 | void Application::run() 43 | { 44 | if(initialized == false) 45 | { 46 | throw MotifException("Application is not yet initialized"); 47 | } 48 | 49 | XtAppMainLoop(context); 50 | } 51 | 52 | XtAppContext Application::getContext() 53 | { 54 | if(initialized == false) 55 | { 56 | throw MotifException("Application is not yet initialized"); 57 | } 58 | 59 | return context; 60 | } 61 | 62 | Widget Application::getWidget() 63 | { 64 | if(initialized == false) 65 | { 66 | throw MotifException("Application is not yet initialized"); 67 | } 68 | 69 | return widget; 70 | } 71 | 72 | std::string Application::getName() 73 | { 74 | if(initialized == false) 75 | { 76 | throw MotifException("Application is not yet initialized"); 77 | } 78 | 79 | return name; 80 | } 81 | 82 | Display* Application::getDisplay() 83 | { 84 | if(initialized == false) 85 | { 86 | throw MotifException("Application is not yet initialized"); 87 | } 88 | 89 | return display; 90 | } 91 | 92 | void Application::addFallbackResource(std::string fallbackResource) 93 | { 94 | fallbackResources.push_back(fallbackResource); 95 | } 96 | 97 | void Application::addResources(std::string path) 98 | { 99 | std::ifstream file; 100 | std::string line; 101 | 102 | file.open(path.c_str()); 103 | 104 | if(file.is_open() == false) 105 | { 106 | return; 107 | } 108 | 109 | while(file.eof() == false) 110 | { 111 | getline(file, line); 112 | addFallbackResource(line); 113 | } 114 | } 115 | 116 | int Application::getScreenWidth() 117 | { 118 | return XDisplayWidth(display, 0); 119 | } 120 | 121 | int Application::getScreenWidth(int screen_number) 122 | { 123 | return XDisplayWidth(display, screen_number); 124 | } 125 | 126 | int Application::getScreenHeight() 127 | { 128 | return XDisplayHeight(display, 0); 129 | } 130 | 131 | int Application::getScreenHeight(int screen_number) 132 | { 133 | return XDisplayHeight(display, screen_number); 134 | } 135 | 136 | } 137 | -------------------------------------------------------------------------------- /src/libmotifmm/Button.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void Button::armCallback(Widget widget, XtPointer client_data, XtPointer call_data) 7 | { 8 | Button* button = (Button*)client_data; 9 | 10 | if(button->armFunction.get() != NULL) 11 | { 12 | button->armFunction->execute(button); 13 | } 14 | } 15 | 16 | void Button::activateCallback(Widget widget, XtPointer client_data, XtPointer call_data) 17 | { 18 | Button* button = (Button*)client_data; 19 | 20 | if(button->activateFunction.get() != NULL) 21 | { 22 | button->activateFunction->execute(button); 23 | } 24 | } 25 | 26 | void Button::disarmCallback(Widget widget, XtPointer client_data, XtPointer call_data) 27 | { 28 | Button* button = (Button*)client_data; 29 | 30 | if(button->disarmFunction.get() != NULL) 31 | { 32 | button->disarmFunction->execute(button); 33 | } 34 | } 35 | 36 | Button::Button(std::string name, Panel* panel) 37 | { 38 | widget = XmCreatePushButton(panel->getWidget(), (char*)name.c_str(), NULL, 0); 39 | XtAddCallback(widget, XmNactivateCallback, activateCallback, this); 40 | XtAddCallback(widget, XmNarmCallback, armCallback, this); 41 | XtAddCallback(widget, XmNdisarmCallback, disarmCallback, this); 42 | XtManageChild(widget); 43 | } 44 | 45 | Button::Button(std::string name, PulldownMenu* pulldownMenu) 46 | { 47 | widget = XmCreatePushButton(pulldownMenu->getWidget(), (char*)name.c_str(), NULL, 0); 48 | XtAddCallback(widget, XmNactivateCallback, activateCallback, this); 49 | XtAddCallback(widget, XmNarmCallback, armCallback, this); 50 | XtAddCallback(widget, XmNdisarmCallback, disarmCallback, this); 51 | XtManageChild(widget); 52 | } 53 | 54 | Button::~Button() 55 | { 56 | XtDestroyWidget(widget); 57 | } 58 | 59 | void Button::setActivateFunction(Function* function) 60 | { 61 | activateFunction.reset(function); 62 | } 63 | 64 | void Button::setDisarmFunction(Function* function) 65 | { 66 | disarmFunction.reset(function); 67 | } 68 | 69 | void Button::setArmFunction(Function* function) 70 | { 71 | armFunction.reset(function); 72 | } 73 | 74 | } 75 | 76 | -------------------------------------------------------------------------------- /src/libmotifmm/Color.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Color::Color(std::string name) 7 | { 8 | XrmValue fromValue; 9 | XrmValue toValue; 10 | 11 | fromValue.addr = (char*)name.c_str(); 12 | fromValue.size = strlen(name.c_str()) + 1; 13 | toValue.addr = (char*)NULL; 14 | 15 | XtConvertAndStore(Application::getWidget(), XmRString, &fromValue, XmRPixel, &toValue); 16 | 17 | if(toValue.addr != (XtPointer)0) 18 | { 19 | pixel = (*(Pixel*)toValue.addr); 20 | } 21 | else 22 | { 23 | throw MotifException("Invalid color name"); 24 | } 25 | } 26 | 27 | Color::Color(Pixel pixel) 28 | { 29 | this->pixel = pixel; 30 | } 31 | 32 | Color::~Color() 33 | { 34 | 35 | } 36 | 37 | Color Color::getLighter() 38 | { 39 | Colormap cmap = DefaultColormapOfScreen(XtScreen(Application::getWidget())); 40 | XColor color; 41 | 42 | color.flags = DoRed|DoGreen|DoBlue; 43 | XAllocColor(XtDisplay(Application::getWidget()), cmap, &color); 44 | color.pixel = pixel; 45 | 46 | color.red += 50; 47 | color.green += 50; 48 | color.blue += 50; 49 | 50 | //XQueryColor(XtDisplay(Application::getWidget()), cmap, &color); 51 | //XStoreColor(XtDisplay(Application::getWidget()), cmap, &color); 52 | //XAllocColor(XtDisplay(Application::getWidget()), cmap, &color); 53 | 54 | return Color(color.pixel); 55 | } 56 | 57 | Color Color::getDarker() 58 | { 59 | XColor color; 60 | 61 | color.pixel = pixel; 62 | 63 | color.red -= 20; 64 | color.green -= 20; 65 | color.blue -= 20; 66 | 67 | return Color(color.pixel); 68 | } 69 | 70 | Pixel Color::getPixel() 71 | { 72 | return pixel; 73 | } 74 | 75 | } 76 | 77 | -------------------------------------------------------------------------------- /src/libmotifmm/Dialog.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Dialog::Dialog(std::string name) : Container(name) 7 | { 8 | Arg args[1]; 9 | 10 | XtSetArg(args[0], XmNdeleteResponse, XmDO_NOTHING); 11 | widget = XmCreateDialogShell(Application::getWidget(), (char*)Application::getName().c_str(), args, 1); 12 | 13 | deleteWindowAtom = XmInternAtom(XtDisplay(widget), (char*)"WM_DELETE_WINDOW", False); 14 | XmAddWMProtocolCallback(widget, deleteWindowAtom, closeCallback, (void*)this); 15 | XtAddEventHandler(widget, StructureNotifyMask, False, eventCallback, (void*)this); 16 | XtAddEventHandler(widget, FocusChangeMask, False, eventCallback, (void*)this); 17 | 18 | contentPanel.reset(new Panel(name, this)); 19 | XtPopdown(widget); 20 | } 21 | 22 | Dialog::~Dialog() 23 | { 24 | contentPanel.reset(NULL); 25 | // Delete deleteDialogAtom 26 | XtUnrealizeWidget(widget); 27 | XtDestroyWidget(widget); 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /src/libmotifmm/Label.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Label::Label(std::string name, Panel* panel) 7 | { 8 | widget = XmCreateLabel(panel->getWidget(), (char*)name.c_str(), NULL, 0); 9 | XtManageChild(widget); 10 | } 11 | 12 | Label::~Label() 13 | { 14 | XtDestroyWidget(widget); 15 | } 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/libmotifmm/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=Application.o Component.o Window.o MessageBox.o Panel.o Button.o ScrolledText.o Dialog.o Container.o Text.o Label.o Password.o MenuBar.o PulldownMenu.o Color.o ToggleButton.o Custom.o IconButton.o Timer.o ScrolledPanel.o ScrollBar.o Separator.o 4 | BASELIB=libmotifmm.so 5 | SONAME=${BASELIB}.2 6 | OUTFILE=${SONAME}.0.0 7 | OUT=../../lib/${OUTFILE} 8 | 9 | .SUFFIXES: .o 10 | 11 | .PHONY: all 12 | all: ${OUT} 13 | 14 | ${OUT}: ${OBJ} 15 | ${CPP} -shared -Wl,-soname,${SONAME} -o ${OUT} ${OBJ} ${LDFLAGS} -lXpm -lXm -lXt -lX11 16 | ln -s ${OUTFILE} ../../lib/${SONAME} 17 | ln -s ${OUTFILE} ../../lib/${BASELIB} 18 | mkdir -p ../../include 19 | cp -r include/* ../../include 20 | 21 | .cpp.o: 22 | ${CPP} ${CPPFLAGS} -fPIC -DPLATFORM_${PLATFORM} -DUSE_${FSH} -c -Iinclude $< -o $@ 23 | 24 | .PHONY: clean 25 | clean: 26 | rm -f ${OUT} ${OBJ} 27 | rm -rf ../../include 28 | rm -f ../../lib/${BASELIB}* 29 | 30 | -------------------------------------------------------------------------------- /src/libmotifmm/MenuBar.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | MenuBar::MenuBar(std::string name, Panel* panel) 7 | { 8 | widget = XmCreateMenuBar(panel->getWidget(), (char*)name.c_str(), NULL, 0); 9 | XtManageChild(widget); 10 | } 11 | 12 | MenuBar::~MenuBar() 13 | { 14 | XtDestroyWidget(widget); 15 | } 16 | 17 | void MenuBar::setHelpMenu(PulldownMenu* pulldownMenu) 18 | { 19 | Arg args[1]; 20 | 21 | XtSetArg(args[0], XmNmenuHelpWidget, pulldownMenu->getCascadeButton()); 22 | XtSetValues(widget, args, 1); 23 | } 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/libmotifmm/MessageBox.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void MessageBox::show(std::string name, std::string message, std::string title, int messageBoxType) 7 | { 8 | Arg args[4]; 9 | Widget widget; 10 | 11 | XtSetArg(args[0], XmNmessageString, (XmStringCreateLtoR((char*)message.c_str(), XmSTRING_DEFAULT_CHARSET))); 12 | XtSetArg(args[1], XmNtitleString, (XmStringCreateLtoR((char*)title.c_str(), XmSTRING_DEFAULT_CHARSET))); 13 | XtSetArg(args[2], XmNdialogStyle, XmDIALOG_FULL_APPLICATION_MODAL); 14 | XtSetArg(args[3], XmNtitle, title.c_str()); 15 | widget = XmCreateErrorDialog(Application::getWidget(), (char*)name.c_str(), args, 4); 16 | XtUnmanageChild(XmMessageBoxGetChild(widget, XmDIALOG_HELP_BUTTON)); 17 | XtUnmanageChild(XmMessageBoxGetChild(widget, XmDIALOG_CANCEL_BUTTON)); 18 | XtManageChild(widget); 19 | XtRealizeWidget(widget); 20 | } 21 | 22 | } 23 | 24 | -------------------------------------------------------------------------------- /src/libmotifmm/Panel.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Panel::Panel(std::string name, Container* container) 7 | { 8 | Arg args[2]; 9 | 10 | XtSetArg(args[0], XmNnoResize, true); 11 | XtSetArg(args[1], XmNresizable, false); 12 | widget = XmCreateForm(container->getWidget(), (char*)name.c_str(), args, 0); 13 | XtManageChild(widget); 14 | } 15 | 16 | Panel::Panel(std::string name, Panel* panel) 17 | { 18 | Arg args[1]; 19 | 20 | XtSetArg(args[0], XmNnoResize, False); 21 | widget = XmCreateForm(panel->getWidget(), (char*)name.c_str(), args, 1); 22 | XtManageChild(widget); 23 | 24 | //Widget s; 25 | //s = XmCreateScrollBar(widget, "scroll", NULL, 0); 26 | //XtManageChild(s); 27 | } 28 | 29 | Panel::~Panel() 30 | { 31 | //XtUnmanageChild(widget); 32 | //XtUnrealizeWidget(widget); 33 | XtDestroyWidget(widget); 34 | } 35 | 36 | } 37 | 38 | -------------------------------------------------------------------------------- /src/libmotifmm/Password.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void Password::activateCallback(Widget widget, XtPointer client_data, XtPointer call_data) 7 | { 8 | Password* password = (Password*)client_data; 9 | 10 | if(password->activateFunction.get() != NULL) 11 | { 12 | password->activateFunction->execute(password); 13 | } 14 | } 15 | 16 | void Password::modifyVerifyCallback(Widget widget, XtPointer client_data, XtPointer call_data) 17 | { 18 | Password* password = (Password*)client_data; 19 | XmTextVerifyCallbackStruct* callbackStruct = (XmTextVerifyCallbackStruct*) call_data; 20 | XmTextBlock textBlock = callbackStruct->text; 21 | 22 | if(password->settingText == true) 23 | { 24 | return; 25 | } 26 | 27 | /* prevent paste operations by denying modifications >1 char */ 28 | if(textBlock->length > 1) 29 | { 30 | callbackStruct->doit = False; 31 | return; 32 | } 33 | 34 | /* deletion. Will delete from start position onwards. */ 35 | if(callbackStruct->startPos < callbackStruct->endPos) 36 | { 37 | callbackStruct->endPos = password->text.size(); 38 | password->text.resize(callbackStruct->startPos); 39 | return; 40 | } 41 | 42 | /* disallow insertions */ 43 | if((unsigned) callbackStruct->startPos < password->text.size()) 44 | { 45 | callbackStruct->doit = False; 46 | return; 47 | } 48 | 49 | password->text = password->text + textBlock->ptr[0]; 50 | textBlock->ptr[0] = '*'; 51 | } 52 | 53 | Password::Password(std::string name, Panel* panel) 54 | { 55 | settingText = false; 56 | widget = XmCreateText(panel->getWidget(), (char*)name.c_str(), NULL, 0); 57 | XtAddCallback(widget, XmNactivateCallback, activateCallback, this); 58 | XtAddCallback(widget, XmNmodifyVerifyCallback, modifyVerifyCallback, this); 59 | XtManageChild(widget); 60 | } 61 | 62 | Password::~Password() 63 | { 64 | XtDestroyWidget(widget); 65 | } 66 | 67 | void Password::setActivateFunction(Function* function) 68 | { 69 | activateFunction.reset(function); 70 | } 71 | 72 | std::string Password::getText() 73 | { 74 | return text; 75 | } 76 | 77 | void Password::setText(std::string text) 78 | { 79 | settingText = true; 80 | this->text = text; 81 | XmTextSetString(widget, (char*)text.c_str()); 82 | settingText = false; 83 | } 84 | 85 | } 86 | 87 | -------------------------------------------------------------------------------- /src/libmotifmm/PulldownMenu.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | PulldownMenu::PulldownMenu(std::string name, MenuBar* menuBar) 7 | { 8 | Arg args[1]; 9 | 10 | widget = XmCreatePulldownMenu(menuBar->getWidget(), (char*)name.c_str(), NULL, 0); 11 | XtSetArg(args[0], XmNsubMenuId, widget); 12 | cascadeButton = XmCreateCascadeButton(menuBar->getWidget(), (char*)name.c_str(), args, 1); 13 | XtManageChild(cascadeButton); 14 | } 15 | 16 | PulldownMenu::~PulldownMenu() 17 | { 18 | XtDestroyWidget(widget); 19 | } 20 | 21 | Widget PulldownMenu::getCascadeButton() 22 | { 23 | return cascadeButton; 24 | } 25 | 26 | void PulldownMenu::setText(std::string text) 27 | { 28 | Arg args[1]; 29 | 30 | XtSetArg(args[0], XmNlabelString, XmStringCreateLtoR((char*)text.c_str(), XmSTRING_DEFAULT_CHARSET)); 31 | XtSetValues(cascadeButton, args, 1); 32 | } 33 | 34 | } 35 | 36 | -------------------------------------------------------------------------------- /src/libmotifmm/ScrollBar.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void ScrollBar::valueChangedCallback(Widget widget, XtPointer client_data, XtPointer call_data) 7 | { 8 | ScrollBar* scroll = (ScrollBar*)client_data; 9 | 10 | if(scroll->valueChangedFunction.get() != NULL) 11 | { 12 | scroll->valueChangedFunction->execute(scroll); 13 | } 14 | } 15 | 16 | void ScrollBar::dragCallback(Widget widget, XtPointer client_data, XtPointer call_data) 17 | { 18 | ScrollBar* scroll = (ScrollBar*)client_data; 19 | 20 | if(scroll->dragFunction.get() != NULL) 21 | { 22 | scroll->dragFunction->execute(scroll); 23 | } 24 | } 25 | 26 | ScrollBar::ScrollBar(std::string name, Panel* panel) 27 | { 28 | widget = XmCreateScrollBar(panel->getWidget(), (char*)name.c_str(), NULL, 0); 29 | XtAddCallback(widget, XmNvalueChangedCallback, valueChangedCallback, this); 30 | XtAddCallback(widget, XmNdragCallback, dragCallback, this); 31 | XtManageChild(widget); 32 | } 33 | 34 | ScrollBar::~ScrollBar() 35 | { 36 | XtDestroyWidget(widget); 37 | } 38 | 39 | void ScrollBar::setValueChangedFunction(Function* function) 40 | { 41 | valueChangedFunction.reset(function); 42 | } 43 | 44 | void ScrollBar::setDragFunction(Function* function) 45 | { 46 | dragFunction.reset(function); 47 | } 48 | 49 | } 50 | 51 | -------------------------------------------------------------------------------- /src/libmotifmm/ScrolledPanel.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | ScrolledPanel::ScrolledPanel(std::string name, Container* container) 7 | { 8 | Arg args[2]; 9 | 10 | XtSetArg(args[0], XmNscrollingPolicy, XmAUTOMATIC); 11 | XtSetArg(args[1], XmNvisualPolicy, XmCONSTANT); 12 | widget = XmCreateScrolledWindow(container->getWidget(), (char*)name.c_str(), args, 2); 13 | XtManageChild(widget); 14 | } 15 | 16 | ScrolledPanel::ScrolledPanel(std::string name, Panel* panel) 17 | { 18 | Arg args[2]; 19 | 20 | XtSetArg(args[0], XmNscrollingPolicy, XmAUTOMATIC); 21 | XtSetArg(args[1], XmNvisualPolicy, XmCONSTANT); 22 | widget = XmCreateScrolledWindow(panel->getWidget(), (char*)name.c_str(), args, 2); 23 | XtManageChild(widget); 24 | 25 | //Widget s; 26 | //s = XmCreateScrollBar(widget, "scroll", NULL, 0); 27 | //XtManageChild(s); 28 | } 29 | 30 | ScrolledPanel::~ScrolledPanel() 31 | { 32 | //XtUnmanageChild(widget); 33 | //XtUnrealizeWidget(widget); 34 | XtDestroyWidget(widget); 35 | } 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /src/libmotifmm/ScrolledText.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | ScrolledText::ScrolledText(std::string name, Panel* panel) 7 | { 8 | Arg args[5]; 9 | 10 | XtSetArg(args[0], XmNeditMode, XmMULTI_LINE_EDIT); 11 | XtSetArg(args[1], XmNrightAttachment, XmATTACH_FORM); 12 | XtSetArg(args[2], XmNleftAttachment, XmATTACH_FORM); 13 | XtSetArg(args[3], XmNtopAttachment, XmATTACH_FORM); 14 | XtSetArg(args[4], XmNbottomAttachment, XmATTACH_FORM); 15 | 16 | widget = XmCreateScrolledText(panel->getWidget(), (char*)name.c_str(), args, 5); 17 | XtManageChild(widget); 18 | std::cout << "Warning: ScrolledText is buggy and the attachments can't be changed" << std::endl; 19 | std::cout << " after the component has been created. Make sure it is put" << std::endl; 20 | std::cout << " in a panel because it will expand." << std::endl; 21 | } 22 | 23 | ScrolledText::~ScrolledText() 24 | { 25 | XtDestroyWidget(widget); 26 | } 27 | 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/libmotifmm/Separator.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Separator::Separator(std::string name, PulldownMenu* pulldownMenu) 7 | { 8 | widget = XmCreateSeparator(pulldownMenu->getWidget(), (char*)name.c_str(), NULL, 0); 9 | XtManageChild(widget); 10 | } 11 | 12 | Separator::~Separator() 13 | { 14 | XtDestroyWidget(widget); 15 | } 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/libmotifmm/Text.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void Text::activateCallback(Widget widget, XtPointer client_data, XtPointer call_data) 7 | { 8 | Text* text = (Text*)client_data; 9 | 10 | if(text->activateFunction.get() != NULL) 11 | { 12 | text->activateFunction->execute(text); 13 | } 14 | } 15 | 16 | Text::Text(std::string name, Panel* panel) 17 | { 18 | widget = XmCreateText(panel->getWidget(), (char*)name.c_str(), NULL, 0); 19 | XtAddCallback(widget, XmNactivateCallback, activateCallback, this); 20 | XtManageChild(widget); 21 | } 22 | 23 | Text::~Text() 24 | { 25 | XtDestroyWidget(widget); 26 | } 27 | 28 | void Text::setActivateFunction(Function* function) 29 | { 30 | activateFunction.reset(function); 31 | } 32 | 33 | void Text::setText(std::string text) 34 | { 35 | XmTextSetString(widget, (char*)text.c_str()); 36 | } 37 | 38 | std::string Text::getText() 39 | { 40 | char* value = XmTextGetString(widget); 41 | 42 | return value; 43 | } 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /src/libmotifmm/Timer.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void Timer::intervalCallback(XtPointer clientData, XtIntervalId* id) 7 | { 8 | Timer* timer = (Timer*)clientData; 9 | timer->id = -1; 10 | 11 | if(timer->intervalFunction.get() != NULL) 12 | { 13 | timer->intervalFunction->execute(timer); 14 | } 15 | 16 | if(timer->stopped == false) 17 | { 18 | timer->setId(XtAppAddTimeOut(Application::getContext(), timer->getTime(), intervalCallback, clientData)); 19 | } 20 | } 21 | 22 | Timer::Timer() 23 | { 24 | stopped = true; 25 | id = -1; 26 | time = 0; 27 | } 28 | 29 | Timer::~Timer() 30 | { 31 | stopped = true; 32 | intervalFunction.reset(NULL); 33 | 34 | if(id != -1) 35 | { 36 | XtRemoveTimeOut(id); 37 | id = -1; 38 | } 39 | } 40 | 41 | void Timer::start(int time) 42 | { 43 | stopped = false; 44 | this->time = time; 45 | id = XtAppAddTimeOut(Application::getContext(), time, intervalCallback, this); 46 | } 47 | 48 | void Timer::stop() 49 | { 50 | stopped = true; 51 | intervalFunction.reset(NULL); 52 | 53 | if(id != -1) 54 | { 55 | XtRemoveTimeOut(id); 56 | id = -1; 57 | } 58 | } 59 | 60 | void Timer::setIntervalFunction(Function* function) 61 | { 62 | intervalFunction.reset(function); 63 | } 64 | 65 | int Timer::getTime() 66 | { 67 | return time; 68 | } 69 | 70 | void Timer::setId(int id) 71 | { 72 | this->id = id; 73 | } 74 | 75 | } 76 | 77 | -------------------------------------------------------------------------------- /src/libmotifmm/ToggleButton.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | void ToggleButton::armCallback(Widget widget, XtPointer client_data, XtPointer call_data) 7 | { 8 | ToggleButton* button = (ToggleButton*)client_data; 9 | 10 | if(button->armFunction.get() != NULL) 11 | { 12 | button->armFunction->execute(button); 13 | } 14 | } 15 | 16 | void ToggleButton::valueChangedCallback(Widget widget, XtPointer client_data, XtPointer call_data) 17 | { 18 | ToggleButton* button = (ToggleButton*)client_data; 19 | 20 | if(button->valueChangedFunction.get() != NULL) 21 | { 22 | button->valueChangedFunction->execute(button); 23 | } 24 | } 25 | 26 | void ToggleButton::disarmCallback(Widget widget, XtPointer client_data, XtPointer call_data) 27 | { 28 | ToggleButton* button = (ToggleButton*)client_data; 29 | 30 | if(button->disarmFunction.get() != NULL) 31 | { 32 | button->disarmFunction->execute(button); 33 | } 34 | } 35 | 36 | ToggleButton::ToggleButton(std::string name, Panel* panel) 37 | { 38 | Arg args[2]; 39 | 40 | XtSetArg(args[0], XmNindicatorOn, false); 41 | XtSetArg(args[1], XmNfillOnSelect, true); 42 | 43 | widget = XmCreateToggleButton(panel->getWidget(), (char*)name.c_str(), args, 2); 44 | XtAddCallback(widget, XmNvalueChangedCallback, valueChangedCallback, this); 45 | XtAddCallback(widget, XmNarmCallback, armCallback, this); 46 | XtAddCallback(widget, XmNdisarmCallback, disarmCallback, this); 47 | XtManageChild(widget); 48 | } 49 | 50 | ToggleButton::ToggleButton(std::string name, PulldownMenu* pulldownMenu) 51 | { 52 | Arg args[2]; 53 | 54 | XtSetArg(args[0], XmNindicatorOn, false); 55 | XtSetArg(args[1], XmNfillOnSelect, true); 56 | 57 | widget = XmCreateToggleButton(pulldownMenu->getWidget(), (char*)name.c_str(), args, 2); 58 | XtAddCallback(widget, XmNvalueChangedCallback, valueChangedCallback, this); 59 | XtAddCallback(widget, XmNarmCallback, armCallback, this); 60 | XtAddCallback(widget, XmNdisarmCallback, disarmCallback, this); 61 | XtManageChild(widget); 62 | } 63 | 64 | ToggleButton::~ToggleButton() 65 | { 66 | XtDestroyWidget(widget); 67 | } 68 | 69 | void ToggleButton::setValueChangedFunction(Function* function) 70 | { 71 | valueChangedFunction.reset(function); 72 | } 73 | 74 | void ToggleButton::setDisarmFunction(Function* function) 75 | { 76 | disarmFunction.reset(function); 77 | } 78 | 79 | void ToggleButton::setArmFunction(Function* function) 80 | { 81 | armFunction.reset(function); 82 | } 83 | 84 | } 85 | 86 | -------------------------------------------------------------------------------- /src/libmotifmm/Window.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace Motif 4 | { 5 | 6 | Window::Window(std::string name) : Container(name) 7 | { 8 | Arg args[1]; 9 | 10 | XtSetArg(args[0], XmNdeleteResponse, XmDO_NOTHING); 11 | widget = XtAppCreateShell(Application::getName().c_str(), Application::getName().c_str(), applicationShellWidgetClass, Application::getDisplay(), args, 1); 12 | 13 | deleteWindowAtom = XmInternAtom(XtDisplay(widget), (char*)"WM_DELETE_WINDOW", False); 14 | XmAddWMProtocolCallback(widget, deleteWindowAtom, closeCallback, (void*)this); 15 | XtAddEventHandler(widget, StructureNotifyMask, False, eventCallback, (void*)this); 16 | XtAddEventHandler(widget, FocusChangeMask, False, eventCallback, (void*)this); 17 | 18 | contentPanel.reset(new Panel(name, this)); 19 | } 20 | 21 | Window::~Window() 22 | { 23 | // Delete deleteWindowAtom 24 | 25 | contentPanel.reset(NULL); 26 | 27 | XtPopdown(widget); 28 | XtUnrealizeWidget(widget); 29 | XtDestroyWidget(widget); 30 | } 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_H 2 | #define MOTIFMM_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | 42 | #include 43 | #include 44 | #include 45 | #include 46 | 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | #include 60 | #include 61 | #include 62 | 63 | #endif 64 | 65 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Application.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_APPLICATION_H 2 | #define MOTIFMM_APPLICATION_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | class Application 10 | { 11 | private: 12 | static bool initialized; 13 | static XtAppContext context; 14 | static Widget widget; 15 | static std::string name; 16 | static Display* display; 17 | static std::vector fallbackResources; 18 | 19 | public: 20 | static void initialize(std::string name, int argc, char* argv[]); 21 | static void run(); 22 | 23 | static XtAppContext getContext(); 24 | static Widget getWidget(); 25 | static std::string getName(); 26 | static Display* getDisplay(); 27 | static void addFallbackResource(std::string fallbackResource); 28 | 29 | static void addResources(std::string path); 30 | 31 | /** 32 | * Get the width of the first screen for the default display. 33 | * 34 | * @see getScreenWidth(int) 35 | * @return width of screen in pixels 36 | */ 37 | static int getScreenWidth(); 38 | 39 | /** 40 | * Get the width of the given screen for the default display. 41 | * 42 | * @param screen_number number of screen to get width of 43 | * @return width of screen in pixels 44 | */ 45 | static int getScreenWidth(int screen_number); 46 | 47 | /** 48 | * Get the height of the first screen for the default display. 49 | * 50 | * @see getScreenHeight(int) 51 | * @return height of the screen in pixels 52 | */ 53 | static int getScreenHeight(); 54 | 55 | /** 56 | * Get the height of the given screen for the default display. 57 | * 58 | * @param screen_number number of screen to get height of 59 | * @return height of screen in pixels 60 | */ 61 | static int getScreenHeight(int screen_number); 62 | 63 | }; 64 | 65 | } 66 | 67 | #endif 68 | 69 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Button.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_BUTTON_H 2 | #define MOTIFMM_BUTTON_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class PulldownMenu; 12 | class Button : public Component 13 | { 14 | private: 15 | static void armCallback(Widget widget, XtPointer client_data, XtPointer call_data); 16 | static void activateCallback(Widget widget, XtPointer client_data, XtPointer call_data); 17 | static void disarmCallback(Widget widget, XtPointer client_data, XtPointer call_data); 18 | 19 | std::auto_ptr armFunction; 20 | std::auto_ptr disarmFunction; 21 | std::auto_ptr activateFunction; 22 | 23 | public: 24 | Button(std::string name, Panel* panel); 25 | Button(std::string name, PulldownMenu* pulldownMenu); 26 | virtual ~Button(); 27 | 28 | void setActivateFunction(Function* function); 29 | void setArmFunction(Function* function); 30 | void setDisarmFunction(Function* function); 31 | 32 | }; 33 | 34 | } 35 | 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Color.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_COLOR_H 2 | #define MOTIFMM_COLOR_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | class Color 10 | { 11 | private: 12 | Pixel pixel; 13 | 14 | public: 15 | Color(std::string name); 16 | Color(Pixel pixel); 17 | ~Color(); 18 | 19 | Pixel getPixel(); 20 | Color getLighter(); 21 | Color getDarker(); 22 | 23 | }; 24 | 25 | } 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Container.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_CONTAINER_H 2 | #define MOTIFMM_CONTAINER_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Style 11 | { 12 | public: 13 | static const int SYSTEM = XmDIALOG_SYSTEM_MODAL; 14 | static const int APPLICATION = XmDIALOG_APPLICATION_MODAL; 15 | 16 | }; 17 | 18 | class MwmFunctions 19 | { 20 | public: 21 | static const int NONE = 0; 22 | static const int ALL = MWM_FUNC_ALL; 23 | static const int RESIZE = MWM_FUNC_RESIZE; 24 | static const int MOVE = MWM_FUNC_MOVE; 25 | static const int MINIMIZE = MWM_FUNC_MINIMIZE; 26 | static const int MAXIMIZE = MWM_FUNC_MAXIMIZE; 27 | static const int CLOSE = MWM_FUNC_CLOSE; 28 | 29 | }; 30 | 31 | class Decorations 32 | { 33 | public: 34 | static const int NONE = 0; 35 | static const int ALL = MWM_DECOR_ALL; 36 | static const int BORDER = MWM_DECOR_BORDER; 37 | static const int RESIZEH = MWM_DECOR_RESIZEH; 38 | static const int TITLE = MWM_DECOR_TITLE; 39 | static const int MENU = MWM_DECOR_MENU; 40 | static const int MINIMIZE = MWM_DECOR_MINIMIZE; 41 | static const int MAXIMIZE = MWM_DECOR_MAXIMIZE; 42 | 43 | }; 44 | 45 | class Function; 46 | class Panel; 47 | class Container : public Component 48 | { 49 | protected: 50 | static void closeCallback(Widget widget, XtPointer client_data, XtPointer call_data); 51 | static void eventCallback(Widget widget, XtPointer client_data, XEvent* event, Boolean* unused); 52 | 53 | Atom deleteWindowAtom; 54 | int lastWidth; 55 | int lastHeight; 56 | std::auto_ptr contentPanel; 57 | std::auto_ptr closeFunction; 58 | std::auto_ptr showFunction; 59 | std::auto_ptr resizeFunction; 60 | std::auto_ptr minimizeFunction; 61 | std::auto_ptr moveFunction; 62 | std::auto_ptr focusFunction; 63 | std::auto_ptr unfocusFunction; 64 | 65 | 66 | public: 67 | Container(std::string name); 68 | virtual ~Container(); 69 | 70 | virtual Panel* getContentPanel(); 71 | virtual void setDecorations(int decorations); 72 | virtual void setStyle(int style); 73 | virtual void setIconName(std::string name); 74 | virtual void setIconPixmap(std::string path); 75 | //virtual void setIconMask(std::string path); 76 | 77 | //XmNiconWindow <-- can get the window of the icon which is cool 78 | 79 | virtual void setVisible(bool visible); 80 | virtual void setInitialFocus(Component* component); 81 | virtual void setMwmFunctions(int functions); 82 | virtual void unmap(); 83 | virtual void minimize(); 84 | 85 | virtual void setCloseFunction(Function* function); 86 | virtual void setShowFunction(Function* function); 87 | virtual void setMoveFunction(Function* function); 88 | virtual void setResizeFunction(Function* function); 89 | virtual void setMinimizeFunction(Function* function); 90 | virtual void setFocusFunction(Function* function); 91 | virtual void setUnfocusFunction(Function* function); 92 | 93 | }; 94 | 95 | } 96 | 97 | #endif 98 | 99 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Custom.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIF_CUSTOM_H 2 | #define MOTIF_CUSTOM_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | class Custom : public Component 10 | { 11 | protected: 12 | GC gc; 13 | 14 | public: 15 | static void exposeCallback(Widget widget, XtPointer clientData, XtPointer callData); 16 | static void resizeCallback(Widget widget, XtPointer clientData, XtPointer callData); 17 | static void motionCallback(Widget widget, XtPointer clientData, XEvent* callData, Boolean* unused); 18 | static void armCallback(Widget widget, XtPointer clientData, XEvent* callData, Boolean* unused); 19 | static void disarmCallback(Widget widget, XtPointer clientData, XEvent* callData, Boolean* unused); 20 | 21 | Custom(std::string name, Panel* panel); 22 | Custom(std::string name, ScrolledPanel* panel); 23 | virtual ~Custom(); 24 | 25 | virtual void onResize(Widget widget, XtPointer clientData, XtPointer callData); 26 | virtual void onExpose(Widget widget, XtPointer clientData, XtPointer callData); 27 | virtual void onMotion(Widget widget, XtPointer clientData, XEvent* callData); 28 | virtual void onArm(Widget widget, XtPointer clientData, XEvent* callData); 29 | virtual void onDisarm(Widget widget, XtPointer clientData, XEvent* callData); 30 | 31 | GC getGC(); 32 | 33 | }; 34 | 35 | } 36 | 37 | #endif 38 | 39 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Dialog.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_DIALOG_H 2 | #define MOTIFMM_DIALOG_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Dialog : public Container 11 | { 12 | protected: 13 | 14 | public: 15 | Dialog(std::string name); 16 | virtual ~Dialog(); 17 | 18 | }; 19 | 20 | } 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Function.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_FUNCTION_H 2 | #define MOTIFMM_FUNCTION_H 3 | 4 | #include 5 | 6 | #define FUNCTION(x) new Motif::ParameterFunction(this, &x) 7 | 8 | namespace Motif 9 | { 10 | 11 | class Function 12 | { 13 | private: 14 | 15 | public: 16 | virtual ~Function(){} 17 | virtual void execute() = 0; 18 | virtual void execute(void* parameter) = 0; 19 | 20 | }; 21 | 22 | template class GenericFunction : public Function 23 | { 24 | private: 25 | T* instance; 26 | void (T::*funcPtr)(); 27 | 28 | public: 29 | GenericFunction(T* instance, void (T::*funcPtr)()) 30 | { 31 | this->instance = instance; 32 | this->funcPtr = funcPtr; 33 | } 34 | 35 | virtual void execute() 36 | { 37 | (instance->*funcPtr)(); 38 | } 39 | 40 | virtual void execute(void* parameter) 41 | { 42 | try 43 | { 44 | (instance->*funcPtr)(); 45 | } 46 | catch(std::exception& e) 47 | { 48 | MessageBox::show("exceptionMessageBox", std::string("Exception: ") + e.what(), "Exception", MessageBoxType::ERROR); 49 | } 50 | } 51 | }; 52 | 53 | template class ParameterFunction : public Function 54 | { 55 | private: 56 | T* instance; 57 | void* parameter; 58 | void (T::*funcPtr)(void*); 59 | 60 | public: 61 | ParameterFunction(T* instance, void (T::*funcPtr)(void*), void* parameter) 62 | { 63 | this->instance = instance; 64 | this->parameter = parameter; 65 | this->funcPtr = funcPtr; 66 | } 67 | 68 | ParameterFunction(T* instance, void (T::*funcPtr)(void*)) 69 | { 70 | this->instance = instance; 71 | this->parameter = NULL; 72 | this->funcPtr = funcPtr; 73 | } 74 | 75 | virtual void execute(void* parameter) 76 | { 77 | try 78 | { 79 | (instance->*funcPtr)(parameter); 80 | } 81 | catch(std::exception& e) 82 | { 83 | MessageBox::show("exceptionMessageBox", std::string("Exception: ") + e.what(), "Exception", MessageBoxType::ERROR); 84 | } 85 | } 86 | 87 | virtual void execute() 88 | { 89 | (instance->*funcPtr)(parameter); 90 | } 91 | 92 | }; 93 | 94 | } 95 | 96 | #endif 97 | 98 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/IconButton.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_ICONBUTTON_H 2 | #define MOTIFMM_ICONBUTTON_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class PulldownMenu; 12 | class IconButton : public Component 13 | { 14 | private: 15 | static void armCallback(Widget widget, XtPointer client_data, XtPointer call_data); 16 | static void activateCallback(Widget widget, XtPointer client_data, XtPointer call_data); 17 | static void disarmCallback(Widget widget, XtPointer client_data, XtPointer call_data); 18 | 19 | std::auto_ptr armFunction; 20 | std::auto_ptr disarmFunction; 21 | std::auto_ptr activateFunction; 22 | 23 | public: 24 | IconButton(std::string name, Panel* panel); 25 | IconButton(std::string name, PulldownMenu* pulldownMenu); 26 | virtual ~IconButton(); 27 | 28 | virtual void setPixmap(std::string path); 29 | virtual void setLabelPixmap(std::string path, bool transparent); 30 | void setActivateFunction(Function* function); 31 | void setArmFunction(Function* function); 32 | void setDisarmFunction(Function* function); 33 | 34 | }; 35 | 36 | } 37 | 38 | #endif 39 | 40 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Label.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_LABEL_H 2 | #define MOTIFMM_LABEL_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class Label : public Component 12 | { 13 | private: 14 | 15 | public: 16 | Label(std::string name, Panel* panel); 17 | virtual ~Label(); 18 | 19 | }; 20 | 21 | } 22 | 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/MenuBar.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_MENUBAR_H 2 | #define MOTIFMM_MENUBAR_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class PulldownMenu; 12 | class MenuBar : public Component 13 | { 14 | public: 15 | MenuBar(std::string name, Panel* panel); 16 | virtual ~MenuBar(); 17 | 18 | virtual void setHelpMenu(PulldownMenu* pulldownMenu); 19 | 20 | }; 21 | 22 | } 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/MessageBox.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_MESSAGEBOX_H 2 | #define MOTIFMM_MESSAGEBOX_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | struct MessageBoxType 10 | { 11 | public: 12 | static const int INFORMATION = 0; 13 | static const int ERROR = 1; 14 | static const int WARNING = 2; 15 | static const int QUESTION = 3; 16 | }; 17 | 18 | class MessageBox 19 | { 20 | public: 21 | static void show(std::string name, std::string message, std::string title, int messageBoxType); 22 | 23 | }; 24 | 25 | } 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/MotifException.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_MOTIFEXCEPTION_H 2 | #define MOTIFMM_MOTIFEXCEPTION_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | class MotifException : public std::exception 10 | { 11 | private: 12 | std::string message; 13 | 14 | public: 15 | MotifException(std::string message) throw() 16 | { 17 | this->message = message; 18 | } 19 | 20 | ~MotifException() throw() 21 | { 22 | 23 | } 24 | 25 | const char* what() const throw() 26 | { 27 | return message.c_str(); 28 | } 29 | }; 30 | 31 | } 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Panel.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_PANEL_H 2 | #define MOTIFMM_PANEL_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Container; 11 | class Panel : public Component 12 | { 13 | public: 14 | Panel(std::string name, Container* container); 15 | Panel(std::string name, Panel* panel); 16 | virtual ~Panel(); 17 | 18 | }; 19 | 20 | } 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Password.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_PASSWORD_H 2 | #define MOTIFMM_PASSWORD_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class Password : public Component 12 | { 13 | private: 14 | static void activateCallback(Widget widget, XtPointer client_data, XtPointer call_data); 15 | static void modifyVerifyCallback(Widget widget, XtPointer client_data, XtPointer call_data); 16 | 17 | std::string text; 18 | std::auto_ptr activateFunction; 19 | bool settingText; 20 | 21 | public: 22 | Password(std::string name, Panel* panel); 23 | virtual ~Password(); 24 | 25 | virtual void setActivateFunction(Function* function); 26 | 27 | virtual std::string getText(); 28 | virtual void setText(std::string text); 29 | }; 30 | 31 | } 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/PulldownMenu.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_PULLDOWNMENU_H 2 | #define MOTIFMM_PULLDOWNMENU_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class MenuBar; 11 | class PulldownMenu : public Component 12 | { 13 | private: 14 | Widget cascadeButton; 15 | 16 | public: 17 | PulldownMenu(std::string name, MenuBar* menuBar); 18 | virtual ~PulldownMenu(); 19 | 20 | virtual void setText(std::string text); 21 | virtual Widget getCascadeButton(); 22 | 23 | }; 24 | 25 | } 26 | 27 | #endif 28 | 29 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/ScrollBar.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_SCROLLBAR_H 2 | #define MOTIFMM_SCROLLBAR_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class ScrollBar : public Component 12 | { 13 | private: 14 | static void valueChangedCallback(Widget widget, XtPointer client_data, XtPointer call_data); 15 | static void dragCallback(Widget widget, XtPointer client_data, XtPointer call_data); 16 | 17 | std::auto_ptr valueChangedFunction; 18 | std::auto_ptr dragFunction; 19 | 20 | public: 21 | ScrollBar(std::string name, Panel* panel); 22 | virtual ~ScrollBar(); 23 | 24 | void setValueChangedFunction(Function* function); 25 | void setDragFunction(Function* function); 26 | 27 | }; 28 | 29 | } 30 | 31 | #endif 32 | 33 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/ScrolledPanel.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_SCROLLEDPANEL_H 2 | #define MOTIFMM_SCROLLEDPANEL_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Container; 11 | class ScrolledPanel : public Component 12 | { 13 | public: 14 | ScrolledPanel(std::string name, Container* container); 15 | ScrolledPanel(std::string name, Panel* panel); 16 | virtual ~ScrolledPanel(); 17 | 18 | }; 19 | 20 | } 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/ScrolledText.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_SCROLLEDTEXT_H 2 | #define MOTIFMM_SCROLLEDTEXT_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class ScrolledText : public Component 12 | { 13 | public: 14 | ScrolledText(std::string name, Panel* panel); 15 | virtual ~ScrolledText(); 16 | 17 | }; 18 | 19 | } 20 | 21 | #endif 22 | 23 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Separator.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_SEPARATOR_H 2 | #define MOTIFMM_SEPARATOR_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class PulldownMenu; 12 | class Separator : public Component 13 | { 14 | private: 15 | 16 | public: 17 | Separator(std::string name, PulldownMenu* pulldownMenu); 18 | virtual ~Separator(); 19 | 20 | }; 21 | 22 | } 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Text.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_TEXT_H 2 | #define MOTIFMM_TEXT_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class Text : public Component 12 | { 13 | private: 14 | static void activateCallback(Widget widget, XtPointer client_data, XtPointer call_data); 15 | 16 | std::auto_ptr activateFunction; 17 | 18 | public: 19 | Text(std::string name, Panel* panel); 20 | virtual ~Text(); 21 | 22 | void setActivateFunction(Function* function); 23 | void setText(std::string text); 24 | std::string getText(); 25 | 26 | }; 27 | 28 | } 29 | 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Timer.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_TIMER_H 2 | #define MOTIFMM_TIMER_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | class Timer 10 | { 11 | protected: 12 | int id; 13 | int time; 14 | bool stopped; 15 | 16 | std::auto_ptr intervalFunction; 17 | 18 | public: 19 | Timer(); 20 | ~Timer(); 21 | 22 | void start(int time); 23 | void stop(); 24 | 25 | int getTime(); 26 | void setId(int id); 27 | 28 | static void intervalCallback(XtPointer clientData, XtIntervalId* id); 29 | void setIntervalFunction(Function* function); 30 | 31 | }; 32 | 33 | } 34 | 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/ToggleButton.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_TOGGLEBUTTON_H 2 | #define MOTIFMM_TOGGLEBUTTON_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Panel; 11 | class PulldownMenu; 12 | class ToggleButton : public Component 13 | { 14 | private: 15 | static void armCallback(Widget widget, XtPointer client_data, XtPointer call_data); 16 | static void valueChangedCallback(Widget widget, XtPointer client_data, XtPointer call_data); 17 | static void disarmCallback(Widget widget, XtPointer client_data, XtPointer call_data); 18 | 19 | std::auto_ptr armFunction; 20 | std::auto_ptr disarmFunction; 21 | std::auto_ptr valueChangedFunction; 22 | 23 | public: 24 | ToggleButton(std::string name, Panel* panel); 25 | ToggleButton(std::string name, PulldownMenu* pulldownMenu); 26 | virtual ~ToggleButton(); 27 | 28 | void setValueChangedFunction(Function* function); 29 | void setArmFunction(Function* function); 30 | void setDisarmFunction(Function* function); 31 | 32 | }; 33 | 34 | } 35 | 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/Window.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_WINDOW_H 2 | #define MOTIFMM_WINDOW_H 3 | 4 | #include 5 | #include 6 | 7 | namespace Motif 8 | { 9 | 10 | class Window : public Container 11 | { 12 | protected: 13 | 14 | public: 15 | Window(std::string name); 16 | virtual ~Window(); 17 | 18 | }; 19 | 20 | } 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /src/libmotifmm/include/motifmm/auto_vector.h: -------------------------------------------------------------------------------- 1 | #ifndef MOTIFMM_AUTO_VECTOR_H 2 | #define MOTIFMM_AUTO_VECTOR_H 3 | 4 | #include 5 | 6 | namespace Motif 7 | { 8 | 9 | template class auto_vector 10 | { 11 | private: 12 | std::vector items; 13 | 14 | public: 15 | ~auto_vector() 16 | { 17 | for(unsigned int index = 0; index < items.size(); index++) 18 | { 19 | delete items.at(index); 20 | } 21 | } 22 | 23 | void clear() 24 | { 25 | for(unsigned int index = 0; index < items.size(); index++) 26 | { 27 | delete items.at(index); 28 | } 29 | 30 | items.clear(); 31 | } 32 | 33 | void add(T* item) 34 | { 35 | items.push_back(item); 36 | } 37 | 38 | T* at(int position) 39 | { 40 | return items.at(position); 41 | } 42 | 43 | int size() 44 | { 45 | return items.size(); 46 | } 47 | 48 | void remove(int position) 49 | { 50 | delete items.at(position); 51 | 52 | items.erase(items.begin() + position); 53 | } 54 | 55 | void remove(T* ptr) 56 | { 57 | for(unsigned int index = 0; index < items.size(); index++) 58 | { 59 | if(ptr == items.at(index)) 60 | { 61 | delete items.at(index); 62 | items.erase(items.begin() + index); 63 | index--; 64 | } 65 | } 66 | } 67 | 68 | void insert(int position, T* item) 69 | { 70 | items.insert(items.begin() + position, item); 71 | } 72 | }; 73 | 74 | } 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /src/libopencde/Environment.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace OpenCDE 4 | { 5 | 6 | std::string Environment::prefix; 7 | std::string Environment::name; 8 | 9 | void Environment::initialize(int argc, char* argv[]) 10 | { 11 | std::string app = Shell::executeFetch("which " + std::string(argv[0])); 12 | std::string bin = Shell::executeFetch("dirname " + app); 13 | prefix = Shell::executeFetch("cd " + bin + "/..; pwd"); 14 | name = app.substr(app.find_last_of('/') + 1); 15 | #ifdef USE_FSH 16 | std::string conf = "/etc/opencde/" + name; 17 | #else 18 | std::string conf = prefix + "/etc/opencde/" + name; 19 | #endif 20 | setenv("OPENCDE_PREFIX", prefix.c_str(), 1); 21 | 22 | if(Filesystem::folderExists(conf) == true) 23 | { 24 | if(Filesystem::folderExists(getHome() + "/.opencde") == false) 25 | { 26 | Filesystem::createFolder(getHome() + "/.opencde"); 27 | } 28 | 29 | if(Filesystem::folderExists(getHome() + "/.opencde/" + name) == false) 30 | { 31 | Filesystem::copyFolder(conf, getHome() + "/.opencde/" + name); 32 | } 33 | } 34 | 35 | Motif::Application::addFallbackResource("*exceptionDialog.background: #1A1866"); 36 | Motif::Application::addFallbackResource("*exceptionDialog*informationLabel.background: #1A1866"); 37 | Motif::Application::addFallbackResource("*exceptionDialog*messageLabel.background: #1A1866"); 38 | Motif::Application::addFallbackResource("*exceptionDialog*informationPanel*shadowThickness: 1"); 39 | Motif::Application::addFallbackResource("*exceptionDialog*fontList: -*-fixed-*-*-*-*-*-120-*-*-*-*-*-*"); 40 | } 41 | 42 | std::string Environment::getUsername() 43 | { 44 | return Shell::executeFetch("whoami"); 45 | } 46 | 47 | std::string Environment::getVariable(std::string variable) 48 | { 49 | return getenv(variable.c_str()); 50 | } 51 | 52 | std::string Environment::getHostname() 53 | { 54 | return Shell::executeFetch("hostname"); 55 | } 56 | 57 | std::string Environment::getPrefix() 58 | { 59 | return prefix; 60 | } 61 | 62 | std::string Environment::getName() 63 | { 64 | return name; 65 | } 66 | 67 | std::string Environment::getHome() 68 | { 69 | return getVariable("HOME"); 70 | } 71 | 72 | } 73 | 74 | -------------------------------------------------------------------------------- /src/libopencde/ExceptionDialog.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace OpenCDE 4 | { 5 | 6 | ExceptionDialog::ExceptionDialog(std::string message, std::string information) : Motif::Dialog("exceptionDialog") 7 | { 8 | setTitle("OpenCDE Exception"); 9 | setWidth(400); 10 | setHeight(300); 11 | setX((Motif::Application::getScreenWidth() / 2) - (400 / 2)); 12 | setY((Motif::Application::getScreenHeight() / 2) - (300 / 2)); 13 | //setDecorations(Motif::Decorations::BORDER | Motif::Decorations::TITLE | Motif::Decorations::MENU); 14 | setMwmFunctions(Motif::MwmFunctions::CLOSE | Motif::MwmFunctions::MOVE); 15 | setStyle(Motif::Style::APPLICATION); 16 | setCloseFunction(FUNCTION(ExceptionDialog::onClose)); 17 | 18 | logoLabel.reset(new Motif::Label("logoLabel", getContentPanel())); 19 | logoLabel->setPixmap(OpenCDE::Environment::getPrefix() + "/share/opencde/pixmaps/OpenCDEExceptionBanner.xpm"); 20 | logoLabel->setWidth(390); 21 | logoLabel->setHeight(75); 22 | logoLabel->setTopAttachment(Motif::Attachment::FORM); 23 | logoLabel->setLeftAttachment(Motif::Attachment::FORM); 24 | logoLabel->setLeftOffset(10); 25 | logoLabel->setTopOffset(10); 26 | 27 | /* 28 | informationPanel.reset(new Motif::Panel("informationPanel", getContentPanel())); 29 | informationPanel->setShadowThickness(1); 30 | informationPanel->setTopAttachment(Motif::Attachment::FORM); 31 | informationPanel->setLeftAttachment(Motif::Attachment::FORM); 32 | informationPanel->setRightAttachment(Motif::Attachment::FORM); 33 | informationPanel->setBottomAttachment(Motif::Attachment::FORM); 34 | informationPanel->setTopOffset(125); 35 | informationPanel->setLeftOffset(5); 36 | informationPanel->setRightOffset(5); 37 | informationPanel->setBottomOffset(35); 38 | */ 39 | 40 | messageLabel.reset(new Motif::Label("messageLabel", getContentPanel())); 41 | messageLabel->setText("Exception: " + message); 42 | messageLabel->setTopAttachment(Motif::Attachment::FORM); 43 | messageLabel->setRightAttachment(Motif::Attachment::FORM); 44 | messageLabel->setLeftAttachment(Motif::Attachment::FORM); 45 | messageLabel->setBottomAttachment(Motif::Attachment::NONE); 46 | messageLabel->setTopOffset(120); 47 | messageLabel->setLeftOffset(10); 48 | messageLabel->setRightOffset(10); 49 | 50 | informationLabel.reset(new Motif::Label("informationLabel", getContentPanel())); 51 | informationLabel->setText(information); 52 | informationLabel->setTopAttachment(Motif::Attachment::FORM); 53 | informationLabel->setRightAttachment(Motif::Attachment::FORM); 54 | informationLabel->setLeftAttachment(Motif::Attachment::FORM); 55 | informationLabel->setBottomAttachment(Motif::Attachment::FORM); 56 | informationLabel->setTopOffset(160); 57 | informationLabel->setRightOffset(10); 58 | informationLabel->setBottomOffset(75); 59 | informationLabel->setLeftOffset(10); 60 | 61 | closeButton.reset(new Motif::Button("closeButton", getContentPanel())); 62 | //closeButton->setShowAsDefault(1); 63 | closeButton->setText("Close"); 64 | closeButton->setShadowThickness(1); 65 | closeButton->setHighlightThickness(1); 66 | closeButton->setBottomAttachment(Motif::Attachment::FORM); 67 | closeButton->setRightAttachment(Motif::Attachment::FORM); 68 | closeButton->setTopAttachment(Motif::Attachment::NONE); 69 | closeButton->setLeftAttachment(Motif::Attachment::NONE); 70 | closeButton->setRightOffset(5); 71 | closeButton->setBottomOffset(5); 72 | closeButton->setWidth(80); 73 | closeButton->setHeight(25); 74 | closeButton->setActivateFunction(FUNCTION(ExceptionDialog::onClose)); 75 | 76 | setVisible(true); 77 | } 78 | 79 | ExceptionDialog::~ExceptionDialog() 80 | { 81 | 82 | } 83 | 84 | void ExceptionDialog::onClose(void* caller) 85 | { 86 | exit(0); 87 | } 88 | 89 | } 90 | -------------------------------------------------------------------------------- /src/libopencde/Filesystem.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace OpenCDE 4 | { 5 | 6 | bool Filesystem::fileExists(std::string path) 7 | { 8 | FILE* file = NULL; 9 | 10 | file = fopen(path.c_str(), "r"); 11 | 12 | if (file == NULL) 13 | { 14 | return false; 15 | } 16 | 17 | fclose(file); 18 | 19 | return true; 20 | } 21 | 22 | bool Filesystem::folderExists(std::string path) 23 | { 24 | DIR* dir = NULL; 25 | 26 | dir = opendir(path.c_str()); 27 | 28 | if(dir == NULL) 29 | { 30 | return false; 31 | } 32 | else 33 | { 34 | closedir(dir); 35 | 36 | return true; 37 | } 38 | } 39 | 40 | void Filesystem::createFolder(std::string path) 41 | { 42 | Shell::execute("mkdir " + path); 43 | } 44 | 45 | void Filesystem::copyFolder(std::string source, std::string destination) 46 | { 47 | Shell::execute("cp -r " + source + " " + destination); 48 | } 49 | 50 | std::string Filesystem::relativeFallback(std::string path, std::string fallback) 51 | { 52 | if(path.length() < 1) 53 | { 54 | throw OpenCDEException("the path '" + path + "' is invalid"); 55 | } 56 | 57 | if(path[0] == '/') 58 | { 59 | return path; 60 | } 61 | else 62 | { 63 | return fallback + "/" + path; 64 | } 65 | } 66 | 67 | std::string Filesystem::pathToResource(std::string res, std::string application, Filesystem::OFSResType type) 68 | { 69 | if(res.length() < 1) 70 | { 71 | throw OpenCDEException("the resource path '" + res + "' is invalid"); 72 | } 73 | 74 | if (res[0] == '/') 75 | { 76 | return res; 77 | } 78 | 79 | /* first try the user's path, then try the default path */ 80 | std::string path; 81 | switch (type) 82 | { 83 | case Filesystem::ICON: 84 | path = Environment::getHome() + "/.opencde/" + application + "/icons/" + res; 85 | if (Filesystem::fileExists(path)) 86 | { 87 | return path; 88 | } 89 | 90 | path = Environment::getPrefix() + "/share/opencde/" + application + "/icons/" + res; 91 | if (Filesystem::fileExists(path)) 92 | { 93 | return path; 94 | } 95 | 96 | path = Environment::getHome() + "/.opencde/icons/" + res; 97 | if (Filesystem::fileExists(path)) 98 | { 99 | return path; 100 | } 101 | 102 | path = Environment::getPrefix() + "/share/opencde/icons/" + res; 103 | if (Filesystem::fileExists(path)) 104 | { 105 | return path; 106 | } 107 | 108 | return ""; 109 | case Filesystem::BACKDROP: 110 | path = Environment::getHome() + "/.opencde/" + application + "/backdrops/" + res; 111 | if (Filesystem::fileExists(path)) 112 | { 113 | return path; 114 | } 115 | 116 | path = Environment::getPrefix() + "/share/opencde/" + application + "/backdrops/" + res; 117 | if (Filesystem::fileExists(path)) 118 | { 119 | return path; 120 | } 121 | 122 | path = Environment::getHome() + "/.opencde/backdrops/" + res; 123 | if (Filesystem::fileExists(path)) 124 | { 125 | return path; 126 | } 127 | 128 | path = Environment::getPrefix() + "/share/opencde/backdrops/" + res; 129 | if (Filesystem::fileExists(path)) 130 | { 131 | return path; 132 | } 133 | 134 | return ""; 135 | } 136 | 137 | return NULL; 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /src/libopencde/Makefile: -------------------------------------------------------------------------------- 1 | include ../../config.Mk 2 | 3 | OBJ=Environment.o Shell.o Ini.o Filesystem.o ExceptionDialog.o Workspace.o vdesk.o 4 | BASELIB=libopencde.so 5 | SONAME=${BASELIB}.2 6 | OUTFILE=${SONAME}.0.0 7 | OUT=../../lib/${OUTFILE} 8 | 9 | .SUFFIXES: .o 10 | 11 | .PHONY: all 12 | all: ${OUT} 13 | 14 | ${OUT}: ${OBJ} 15 | ${CPP} -shared -Wl,-soname,${SONAME} -o ${OUT} ${OBJ} ${LDFLAGS} -lXpm -lXm -lXt -lX11 16 | ln -s ${OUTFILE} ../../lib/${SONAME} 17 | ln -s ${OUTFILE} ../../lib/${BASELIB} 18 | cp -r include/* ../../include 19 | 20 | .cpp.o: 21 | ${CPP} ${CPPFLAGS} -fPIC -DPLATFORM_${PLATFORM} -DUSE_${FSH} -c -Iinclude -I../../include $< -o $@ 22 | 23 | .PHONY: clean 24 | clean: 25 | rm -f ${OUT} ${OBJ} 26 | rm -f ../../lib/${BASELIB}* 27 | 28 | -------------------------------------------------------------------------------- /src/libopencde/Shell.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace OpenCDE 4 | { 5 | 6 | void Shell::execute(std::string command) 7 | { 8 | FILE* file = NULL; 9 | char buffer[128]; 10 | std::string output; 11 | 12 | file = popen(std::string(command + " 2>&1").c_str(), "r"); 13 | 14 | if(file == NULL) 15 | { 16 | throw OpenCDEException("Failed to execute `" + command + "`"); 17 | } 18 | 19 | while(fgets(buffer, sizeof(buffer), file)) 20 | { 21 | output += buffer; 22 | } 23 | 24 | if(pclose(file) != 0) 25 | { 26 | throw OpenCDEException(output); 27 | } 28 | } 29 | 30 | void Shell::executeFork(std::string command) 31 | { 32 | system(std::string(command + " &").c_str()); 33 | } 34 | 35 | std::string Shell::executeFetch(std::string command) 36 | { 37 | FILE* file = NULL; 38 | char buffer[128]; 39 | std::string output; 40 | 41 | file = popen(std::string(command + " 2>&1 | tr -d '\n'").c_str(), "r"); 42 | 43 | if(file == NULL) 44 | { 45 | throw OpenCDEException("Failed to execute `" + command + "`"); 46 | } 47 | 48 | while(fgets(buffer, sizeof(buffer), file)) 49 | { 50 | output += buffer; 51 | } 52 | 53 | if(pclose(file) != 0) 54 | { 55 | throw OpenCDEException(output); 56 | } 57 | 58 | return output; 59 | } 60 | 61 | } 62 | 63 | -------------------------------------------------------------------------------- /src/libopencde/Workspace.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace OpenCDE 4 | { 5 | 6 | void Workspace::setWorkspace(int workspace) 7 | { 8 | vdesk(2, 0, workspace); 9 | } 10 | 11 | void Workspace::moveToWorkspace(Window id, int workspace) 12 | { 13 | vdesk(3, id, workspace); 14 | } 15 | 16 | void Workspace::setBackgroundPixmap(std::string path) 17 | { 18 | Display* display = NULL; 19 | Pixmap pixmap; 20 | int screen = 0; 21 | 22 | display = XOpenDisplay(NULL); 23 | 24 | if(display == NULL) 25 | { 26 | return; 27 | } 28 | 29 | screen = DefaultScreen(display); 30 | 31 | XpmReadFileToPixmap(display, RootWindow(display, screen), (char*)path.c_str(), &pixmap, NULL, NULL); 32 | XSetWindowBackgroundPixmap(display, DefaultRootWindow(display), pixmap); 33 | XClearWindow(display, RootWindow(display, screen)); 34 | XCloseDisplay(display); 35 | } 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_H 2 | #define OPENCDE_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/Environment.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_ENVIRONMENT_H 2 | #define OPENCDE_ENVIRONMENT_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class Environment 10 | { 11 | private: 12 | static std::string prefix; 13 | static std::string name; 14 | 15 | public: 16 | static void initialize(int argc, char* argv[]); 17 | static std::string getUsername(); 18 | static std::string getVariable(std::string variable); 19 | static std::string getHostname(); 20 | static std::string getPrefix(); 21 | static std::string getName(); 22 | static std::string getHome(); 23 | 24 | }; 25 | 26 | } 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/ExceptionDialog.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_EXCEPTIONDIALOG_H 2 | #define OPENCDE_EXCEPTIONDIALOG_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class ExceptionDialog : public Motif::Dialog 10 | { 11 | private: 12 | std::auto_ptr messageLabel; 13 | std::auto_ptr informationLabel; 14 | std::auto_ptr logoLabel; 15 | std::auto_ptr informationPanel; 16 | std::auto_ptr scrolledTextPanel; 17 | std::auto_ptr informationScrolledText; 18 | std::auto_ptr closeButton; 19 | 20 | public: 21 | ExceptionDialog(std::string message, std::string information); 22 | ~ExceptionDialog(); 23 | 24 | void onClose(void* caller); 25 | }; 26 | 27 | } 28 | 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/Filesystem.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_FILESYSTEM_H 2 | #define OPENCDE_FILESYSTEM_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class Filesystem 10 | { 11 | private: 12 | 13 | public: 14 | 15 | enum OFSResType 16 | { 17 | ICON, 18 | BACKDROP 19 | }; 20 | 21 | static bool fileExists(std::string path); 22 | static bool folderExists(std::string path); 23 | static void copyFolder(std::string source, std::string destination); 24 | static void createFolder(std::string path); 25 | 26 | static std::string relativeFallback(std::string path, std::string fallback); 27 | 28 | static std::string pathToResource(std::string res, std::string application, OFSResType type); 29 | 30 | }; 31 | 32 | } 33 | 34 | #endif 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/Ini.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_INI_H 2 | #define OPENCDE_INI_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class Variable 10 | { 11 | private: 12 | std::string name; 13 | std::string value; 14 | 15 | public: 16 | void setName(std::string name); 17 | void setValue(std::string value); 18 | std::string getName(); 19 | std::string getValue(); 20 | 21 | }; 22 | 23 | class Section 24 | { 25 | private: 26 | std::string name; 27 | Motif::auto_vector variables; 28 | 29 | public: 30 | Section(); 31 | ~Section(); 32 | 33 | std::string getName(); 34 | void setName(std::string name); 35 | Motif::auto_vector* getVariables(); 36 | 37 | }; 38 | 39 | class Group 40 | { 41 | private: 42 | std::string name; 43 | Motif::auto_vector
sections; 44 | 45 | public: 46 | Group(); 47 | ~Group(); 48 | 49 | std::string getName(); 50 | void setName(std::string name); 51 | Motif::auto_vector
* getSections(); 52 | 53 | }; 54 | 55 | class Ini 56 | { 57 | private: 58 | std::string path; 59 | Motif::auto_vector groups; 60 | 61 | std::string removeWhitespace(std::string input); 62 | 63 | public: 64 | Ini(std::string path); 65 | ~Ini(); 66 | 67 | Motif::auto_vector* getGroups(); 68 | void getGroupNames(std::vector* groupNames); 69 | void getSectionNames(std::string groupName, std::vector* sectionNames); 70 | void save(); 71 | std::string getValue(std::string groupName, std::string sectionName, std::string variableName); // throws 72 | std::string getValue(std::string groupName, std::string sectionName, std::string variableName, std::string defaultValue); 73 | 74 | }; 75 | 76 | } 77 | 78 | #endif 79 | 80 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/OpenCDEException.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_OPENCDEEXCEPTION_H 2 | #define OPENCDE_OPENCDEEXCEPTION_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class OpenCDEException : public std::exception 10 | { 11 | private: 12 | std::string message; 13 | 14 | public: 15 | OpenCDEException(std::string message) throw() 16 | { 17 | this->message = message; 18 | } 19 | 20 | ~OpenCDEException() throw() 21 | { 22 | 23 | } 24 | 25 | const char* what() const throw() 26 | { 27 | return message.c_str(); 28 | } 29 | }; 30 | 31 | } 32 | 33 | #endif 34 | 35 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/Shell.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_SHELL_H 2 | #define OPENCDE_SHELL_H 3 | 4 | #include 5 | 6 | namespace OpenCDE 7 | { 8 | 9 | class Shell 10 | { 11 | public: 12 | static void execute(std::string command); 13 | static void executeFork(std::string command); 14 | static std::string executeFetch(std::string command); 15 | 16 | }; 17 | 18 | } 19 | 20 | #endif 21 | 22 | -------------------------------------------------------------------------------- /src/libopencde/include/opencde/Workspace.h: -------------------------------------------------------------------------------- 1 | #ifndef OPENCDE_WORKSPACE_H 2 | #define OPENCDE_WORKSPACE_H 3 | 4 | #include 5 | 6 | int vdesk(int argc, Window winId, int deskNo); 7 | 8 | namespace OpenCDE 9 | { 10 | 11 | class Workspace 12 | { 13 | public: 14 | static void moveToWorkspace(Window id, int workspace); 15 | static void setWorkspace(int workspace); 16 | static void setBackgroundPixmap(std::string path); 17 | 18 | }; 19 | 20 | } 21 | 22 | #endif 23 | 24 | --------------------------------------------------------------------------------