Menu

Tree [r38] /
 History

HTTPS access


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

Read Me

           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....