scitepm Code
Status: Beta
Brought to you by:
rrwood
File | Date | Author | Commit |
---|---|---|---|
docs | 2006-05-29 | rrwood | [r15] Add link to Russian SciTE site in docs |
src | 2010-06-29 | mdda | [r37] Group names couldn't be changed, somehow |
COPYING | 2006-05-19 | rrwood | [r3] Added README and COPYING |
Makefile | 2010-06-29 | mdda | [r37] Group names couldn't be changed, somehow |
README | 2006-05-28 | rrwood | [r13] Update docs |
SConstruct | 2010-06-29 | mdda | [r38] Group names couldn't be changed, somehow - Make... |
TODO.txt | 2006-05-19 | rrwood | [r1] Initial add of files |
buildnum.txt | 2010-06-29 | mdda | [r38] Group names couldn't be changed, somehow - Make... |
scitepm.spec.base | 2008-07-10 | mdda | [r34] Added Fedora (tested) spec file |
scitepm.xml | 2010-06-29 | mdda | [r37] Group names couldn't be changed, somehow |
ScitePM - Copyright (C) 2006 by Roy Wood, rrwood@users.sourceforge.net ---- This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. ---- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. See the COPYING file for a copy of the GNU General Public License. ---- ScitePM: ======== ScitePM is a lightweight, Gtk-based project manager for use with the SciTE editor. ScitePM allows the user to organize a set of files as a project, like most IDEs, and then open them within SciTE. ScitePM uses the SciTE "Director" interface to communicate with SciTE. Note that SciTE must be named "SciTE" or "scite" to allow ScitePM to correctly launch it. If this is not the case on your system, create a symlink something like this: ln -s /usr/local/bin/scite_executable_blah_blah_blah ~/bin/scite (Obviously that assumes that SciTE is /usr/local/bin/scite_executable_blah_blah_blah on your system) ScitePM is very simple to use. Click the "Open Project," "Save Project," or "Add Files" buttons to do the obvious things. Right-click on the main pane of the app to add files or groups (i.e. folders). Drag and drop folders and files within the app to arrange to your satisfaction. To open a file, double-click it or highlight it and press return/enter. Note that the SciTE executable must be named "SciTE" for ScitePM to launch it! The command line syntax for scitepm is: scitepm [-q|--quiet] [-v|--version] [-h|--help] [project-path] -q | --quiet prevents the "About" dialog from being shown at startup. -v | --version instructs ScitePM to print the application version to stdout at startup -h | --help instructs ScitPM to print the usage (what you're reading now) to stdout [project-path] specifies the path to a ScitePM project file Installing: =========== 1) Unpack the tarball: tar -xvzf scitepm-X.Y.tar.gz 2) Build the executable: make (or use scons) 3) Install the executable as root: sudo make install Note that ScitePM is installed in /usr/local/bin by default. If you want it installed somewhere else, tweak the Makefile's "INSTALLDIR" setting. Changelog: ========== v1.6.8 rrwood - 2006/05/27 - Activate SciTE via "_NET_ACTIVE_WINDOW" message to ewmh-compliant window manager v1.6.7 rrwood - 2006/05/27 - Set project status to dirty if row is expanded/collapsed v1.6.6 rrwood - 2006/05/26 - Add changelog to docs v1.6.5 rrwood - 2006/05/25 - Preserve expanded state of group nodes when saving/loading project rrwood - 2006/05/25 - Preserve order of file nodes when loading project (broken by changes in earlier version) v1.6.4 rrwood - 2006/05/25 - Add "Create Group" button and functionality rrwood - 2006/05/25 - Make file paths relative to project path when saving project for the first time rrwood - 2006/05/25 - Add simple "Help" button rrwood - 2006/05/25 - Support SciTE executable name "scite" in addition to "SciTE" rrwood - 2006/05/25 - Set window title whenever project file name is set v1.6.3 rrwood - 2006/05/22 - Tweak Makefile to build better tarball v1.6.2 rrwood - 2006/05/19 - Move project to Sourceforge Hacking: ======== I've had to maintain lots of other people's code in the past, and understand the importance of making things clear and simple, rather than clever, so I've tried very hard to make the ScitePM source as easy to understand as possible. Whether I've succeeded or not remains to be seen, of course. In general, the app is structured as an MVC application, with some blurring of the division of view and controller, and some questionable direct access to the model (made the Gtk code a little cleaner). The source is organized into the following files: src/main.cc: The main() entry point for the app; it parses the command-line options, calls setup_gui(), loads a project file if appropriate, then calls gtk_main() to run the app src/gui.cc: All the code to create and run the GUI, including button callbacks, popup menu callbacks, etc.; this is basically where all the "View" and "Controller" stuff lives src/tree_manipulation.cc: The "Model" related code lives here, including functions to add/remove nodes to/from the GtkTreeStore, set the "dirty" status of the tree, set the project filepath, load/save the project file, etc. src/xml_processing.cc: Project files are stored as XML, and the code in this file reads/writes these files src/drag_drop.cc: Gtk drag-and-drop processing is handled by the code in this file src/scite_utils.cc: This file contains the code used to launch and communicate with SciTE src/string_utils.cc: Miscellaneous code used to manipulate strings (append strings, convert relative/absolute file paths) src/gfileutils_local.cc: This file implements g_file_set_contents( ), which is not available on older versions of glib; if you have v2.8 or later of glib, this code is unnecessary Rant: ===== I'll take the opportunity to bitch about the fact that C programming is a whole lot more of a pain in the ass than I remember. I had fond memories of all the C work I did years back, but haven't really done anything significant for a while. Instead, I've been doing a lot of C++, and I was shocked at how much I prefer C++ to C now. In particular, the error handling and resource management in C is painfully labour-intensive. Oh well....