mirror of
https://github.com/edeproject/ede.git
synced 2023-08-10 21:13:03 +03:00
Imported eabout, a small program that displays current EDE version, authors, contibutors, etc.
Added ProgramBare rule in Program.jam so there could be built plain (command-line) programs and so they could be installed where other EDE programs resides. New etip on FLTK1 code. Also, instead hardcoded tips, etip now uses fortune-like files for tips. Ah yes, it is able to read fortune files too :)
This commit is contained in:
15
Jamfile
15
Jamfile
@ -14,15 +14,16 @@ EdeManual HACKING.txt ;
|
|||||||
Clean distclean : $(JCACHEFILE) $(HCACHEFILE) ;
|
Clean distclean : $(JCACHEFILE) $(HCACHEFILE) ;
|
||||||
|
|
||||||
# SubInclude goes after local rules
|
# SubInclude goes after local rules
|
||||||
SubInclude TOP econtrol ;
|
SubInclude TOP eabout ;
|
||||||
SubInclude TOP ecalc ;
|
SubInclude TOP ecalc ;
|
||||||
|
SubInclude TOP econtrol ;
|
||||||
SubInclude TOP ecrasher ;
|
SubInclude TOP ecrasher ;
|
||||||
SubInclude TOP edewm ;
|
|
||||||
SubInclude TOP eiconman ;
|
|
||||||
SubInclude TOP evoke ;
|
|
||||||
SubInclude TOP eimage ;
|
|
||||||
SubInclude TOP efiler ;
|
|
||||||
SubInclude TOP etimedate ;
|
|
||||||
SubInclude TOP edesktopconf ;
|
SubInclude TOP edesktopconf ;
|
||||||
|
SubInclude TOP edewm ;
|
||||||
|
SubInclude TOP efiler ;
|
||||||
|
SubInclude TOP eiconman ;
|
||||||
|
SubInclude TOP eimage ;
|
||||||
|
SubInclude TOP etimedate ;
|
||||||
|
SubInclude TOP evoke ;
|
||||||
SubInclude TOP docs ;
|
SubInclude TOP docs ;
|
||||||
SubInclude TOP datas ;
|
SubInclude TOP datas ;
|
||||||
|
@ -136,3 +136,19 @@ rule FltkProgramBare
|
|||||||
InstallEdeProgram $(1) ;
|
InstallEdeProgram $(1) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ProgramBare [target] : [sources] : [noinstall] ;
|
||||||
|
# Creates programs that will be linked only with standard library (no FLTK and X11 libraries).
|
||||||
|
# This rule is usefull for creating command line programs that should be installed at the same
|
||||||
|
# place where other EDE programs are installed.
|
||||||
|
rule ProgramBare
|
||||||
|
{
|
||||||
|
MakeProgramPrivate $(1) : $(2)
|
||||||
|
: $(STDLIB)
|
||||||
|
: $(GLOBALFLAGS) ;
|
||||||
|
|
||||||
|
# install it where ede binaries resides
|
||||||
|
if $(3) != "noinstall" {
|
||||||
|
InstallEdeProgram $(1) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
16
eabout/Jamfile
Normal file
16
eabout/Jamfile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
# Part of Equinox Desktop Environment (EDE).
|
||||||
|
# Copyright (c) 2008 EDE Authors.
|
||||||
|
#
|
||||||
|
# This program is licensed under terms of the
|
||||||
|
# GNU General Public License version 2 or newer.
|
||||||
|
# See COPYING for details.
|
||||||
|
|
||||||
|
SubDir TOP eabout ;
|
||||||
|
|
||||||
|
SOURCE = eabout.cpp ;
|
||||||
|
|
||||||
|
EdeProgram eabout : $(SOURCE) ;
|
||||||
|
TranslationStrings locale : $(SOURCE) ;
|
168
eabout/eabout.cpp
Normal file
168
eabout/eabout.cpp
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Eabout, display version and authors
|
||||||
|
* Part of Equinox Desktop Environment (EDE).
|
||||||
|
* Copyright (c) 2008 EDE Authors.
|
||||||
|
*
|
||||||
|
* This program is licensed under terms of the
|
||||||
|
* GNU General Public License version 2 or newer.
|
||||||
|
* See COPYING for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <FL/Fl.h>
|
||||||
|
#include <FL/Fl_Window.h>
|
||||||
|
#include <FL/Fl_Group.h>
|
||||||
|
#include <FL/Fl_Box.h>
|
||||||
|
#include <FL/Fl_Button.h>
|
||||||
|
#include <FL/Fl_Text_Display.h>
|
||||||
|
#include <FL/Fl_Text_Buffer.h>
|
||||||
|
#include <FL/Fl_Pixmap.h>
|
||||||
|
|
||||||
|
#include <edelib/Nls.h>
|
||||||
|
#include "icons/ede.xpm"
|
||||||
|
|
||||||
|
#include <string.h> // memset
|
||||||
|
|
||||||
|
static Fl_Pixmap image_ede(ede_xpm);
|
||||||
|
|
||||||
|
Fl_Window* win;
|
||||||
|
Fl_Text_Buffer* stylebuff;
|
||||||
|
|
||||||
|
Fl_Text_Display::Style_Table_Entry style_table[] = {
|
||||||
|
{ FL_BLACK, FL_HELVETICA, 12, }, // A - plain
|
||||||
|
{ FL_BLACK, FL_HELVETICA_BOLD, 12} // B - bold text
|
||||||
|
};
|
||||||
|
|
||||||
|
const char* content = "\n\
|
||||||
|
Heads:\n\n\
|
||||||
|
Sanel Zukan (karijes@equinox-project.org)\n\
|
||||||
|
Vedran Ljubovic (vljubovic@equinox-project.org)\n\
|
||||||
|
\n\
|
||||||
|
Contributors:\n\n\
|
||||||
|
(to be added)\n\
|
||||||
|
\n\
|
||||||
|
Past developers:\n\n\
|
||||||
|
Martin Pekar\n\
|
||||||
|
Mikko Lahtenaaki\n\
|
||||||
|
Dejan Lekic\n\
|
||||||
|
Alexey Parshin\n\
|
||||||
|
\n\
|
||||||
|
Translators:\n\n\
|
||||||
|
(to be added)\n\
|
||||||
|
\n\
|
||||||
|
Patches in 1.x series by:\n\n\
|
||||||
|
Michael Sheldon\n\
|
||||||
|
Anthony Wesley\n\
|
||||||
|
and others! Thank you guys! :)\n\
|
||||||
|
\n\
|
||||||
|
Web:\n\n\
|
||||||
|
http://equinox-project.org\n\n\
|
||||||
|
Hosting provided by Sohlius,Inc. (thanks!)\n\
|
||||||
|
\n\
|
||||||
|
Bug reports:\n\n\
|
||||||
|
http://trac.equinox-project.org/report/1\n\
|
||||||
|
\n\
|
||||||
|
License: \n\n\
|
||||||
|
This program is based in part on the work of\n\
|
||||||
|
FLTK project (www.fltk.org).\n\
|
||||||
|
\n\
|
||||||
|
This program is free software, you can redistribute\n\
|
||||||
|
it and/or modify it under the terms of GNU General\n\
|
||||||
|
Public License as published by the Free Software\n\
|
||||||
|
Foundation, either version 2 of the License, or\n\
|
||||||
|
(at your option) any later version.\n\n\
|
||||||
|
This program is distributed in the hope that it will\n\
|
||||||
|
be useful, but WITHOUT ANY WARRANTY;\n\
|
||||||
|
without even the implied\n\
|
||||||
|
warranty of MERCHANTABILITY or FITNESS\n\
|
||||||
|
FOR A PARTICULAR PURPOSE.\n\n\
|
||||||
|
See the GNU General Public License for more details.\n\
|
||||||
|
You should have received a copy of the GNU General\n\
|
||||||
|
Public Licence along with this program; if not, write\n\
|
||||||
|
to the Free Software Foundation, Inc., 675 Mass Ave,\n\
|
||||||
|
Cambridge, MA 02139, USA";
|
||||||
|
|
||||||
|
const char* bold_keywords[] = {
|
||||||
|
"Heads:",
|
||||||
|
"Contributors:",
|
||||||
|
"Past developers:",
|
||||||
|
"Patches in 1.x series by:",
|
||||||
|
"Translators:",
|
||||||
|
"Web:",
|
||||||
|
"Bug reports:",
|
||||||
|
"License:"
|
||||||
|
};
|
||||||
|
|
||||||
|
#define BOLD_KEYWORDS_LEN 8
|
||||||
|
|
||||||
|
void close_cb(Fl_Widget*, void*) {
|
||||||
|
win->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
char* prepare_style(char* txt, int len) {
|
||||||
|
// paint all with 'A' style at startup
|
||||||
|
char* style = new char[len + 1];
|
||||||
|
memset(style, 'A', len);
|
||||||
|
style[len + 1] = '\0';
|
||||||
|
|
||||||
|
// find bold keywords and paint them
|
||||||
|
char* p = 0;
|
||||||
|
for(int i = 0; i < BOLD_KEYWORDS_LEN; i++) {
|
||||||
|
p = strstr(txt, bold_keywords[i]);
|
||||||
|
if(!p)
|
||||||
|
continue;
|
||||||
|
unsigned int len = strlen(bold_keywords[i]);
|
||||||
|
memset(&style[p - txt], 'B', len);
|
||||||
|
}
|
||||||
|
|
||||||
|
return style;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
win = new Fl_Window(440, 335, _("About EDE"));
|
||||||
|
win->begin();
|
||||||
|
Fl_Group* title_group = new Fl_Group(0, 0, 440, 65);
|
||||||
|
title_group->box(FL_ENGRAVED_BOX);
|
||||||
|
title_group->color(FL_BACKGROUND2_COLOR);
|
||||||
|
title_group->begin();
|
||||||
|
Fl_Box* image_box = new Fl_Box(5, 5, 60, 55);
|
||||||
|
image_box->image(image_ede);
|
||||||
|
|
||||||
|
Fl_Box* ede_label_box = new Fl_Box(70, 10, 365, 25, "Equinox Deskop Environment 2.0");
|
||||||
|
ede_label_box->labelfont(1);
|
||||||
|
ede_label_box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||||
|
|
||||||
|
Fl_Box* ede_copy_box = new Fl_Box(70, 35, 365, 25, "Copyright (c) by EDE Authors 2000-2008");
|
||||||
|
ede_copy_box->labelsize(11);
|
||||||
|
ede_copy_box->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE|FL_ALIGN_TOP);
|
||||||
|
|
||||||
|
title_group->end();
|
||||||
|
|
||||||
|
Fl_Text_Display* txt_display = new Fl_Text_Display(10, 78, 420, 212);
|
||||||
|
txt_display->textsize(12);
|
||||||
|
|
||||||
|
// remove bottom scrollbar, since text is already nicely formatted
|
||||||
|
txt_display->scrollbar_align(FL_ALIGN_RIGHT);
|
||||||
|
|
||||||
|
Fl_Text_Buffer* buff = new Fl_Text_Buffer();
|
||||||
|
buff->append(content);
|
||||||
|
|
||||||
|
// load style buff
|
||||||
|
stylebuff = new Fl_Text_Buffer(buff->length());
|
||||||
|
char* style = prepare_style(buff->text(), buff->length());
|
||||||
|
|
||||||
|
stylebuff->text(style);
|
||||||
|
delete [] style;
|
||||||
|
|
||||||
|
txt_display->buffer(buff);
|
||||||
|
txt_display->highlight_data(stylebuff, style_table,
|
||||||
|
sizeof(style_table) / sizeof(style_table[0]), 'A', 0, 0);
|
||||||
|
|
||||||
|
Fl_Button* close_button = new Fl_Button(340, 300, 90, 25, _("&Close"));
|
||||||
|
close_button->callback(close_cb);
|
||||||
|
|
||||||
|
win->end();
|
||||||
|
win->show(argc, argv);
|
||||||
|
return Fl::run();
|
||||||
|
}
|
34
eabout/eabout.fl
Normal file
34
eabout/eabout.fl
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# data file for the Fltk User Interface Designer (fluid)
|
||||||
|
version 1.0108
|
||||||
|
header_name {.h}
|
||||||
|
code_name {.cxx}
|
||||||
|
Function {} {open
|
||||||
|
} {
|
||||||
|
Fl_Window {} {
|
||||||
|
label {About EDE} open selected
|
||||||
|
xywh {292 190 440 335} type Double visible
|
||||||
|
} {
|
||||||
|
Fl_Group {} {open
|
||||||
|
xywh {0 0 440 65} box FLAT_BOX color 7 labelsize 14
|
||||||
|
} {
|
||||||
|
Fl_Box {} {
|
||||||
|
image {icons/ede.xpm} xywh {5 5 60 55} labelsize 14
|
||||||
|
}
|
||||||
|
Fl_Box {} {
|
||||||
|
label {Equinox Desktop Environment}
|
||||||
|
xywh {70 10 365 25} labelfont 1 align 20
|
||||||
|
}
|
||||||
|
Fl_Box {} {
|
||||||
|
label {Copyright (c) by EDE Authors 2000-2008}
|
||||||
|
xywh {70 35 365 25} labelsize 11 align 21
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Fl_Text_Display {} {
|
||||||
|
xywh {10 78 420 212} labelsize 14 textsize 14
|
||||||
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {&Close}
|
||||||
|
xywh {340 300 90 25}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
402
eabout/icons/ede.xpm
Normal file
402
eabout/icons/ede.xpm
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
/* XPM */
|
||||||
|
static char * ede_xpm[] = {
|
||||||
|
"48 48 351 2",
|
||||||
|
" c None",
|
||||||
|
". c #979696",
|
||||||
|
"+ c #686665",
|
||||||
|
"@ c #878686",
|
||||||
|
"# c #4F4D4B",
|
||||||
|
"$ c #433F3E",
|
||||||
|
"% c #413F3C",
|
||||||
|
"& c #433F3D",
|
||||||
|
"* c #878685",
|
||||||
|
"= c #706E6D",
|
||||||
|
"- c #2E2B28",
|
||||||
|
"; c #211C19",
|
||||||
|
"> c #2B2724",
|
||||||
|
", c #6C6968",
|
||||||
|
"' c #696766",
|
||||||
|
") c #282522",
|
||||||
|
"! c #201B18",
|
||||||
|
"~ c #1F1A17",
|
||||||
|
"{ c #1E1916",
|
||||||
|
"] c #282421",
|
||||||
|
"^ c #292421",
|
||||||
|
"/ c #393532",
|
||||||
|
"( c #3F3A38",
|
||||||
|
"_ c #403B39",
|
||||||
|
": c #403C39",
|
||||||
|
"< c #3F3B38",
|
||||||
|
"[ c #3E3936",
|
||||||
|
"} c #312C2A",
|
||||||
|
"| c #231E1B",
|
||||||
|
"1 c #241F1C",
|
||||||
|
"2 c #474240",
|
||||||
|
"3 c #8B8987",
|
||||||
|
"4 c #A4A3A1",
|
||||||
|
"5 c #A7A5A4",
|
||||||
|
"6 c #A7A6A4",
|
||||||
|
"7 c #A6A5A3",
|
||||||
|
"8 c #9F9D9B",
|
||||||
|
"9 c #6A6764",
|
||||||
|
"0 c #2F2B28",
|
||||||
|
"a c #26211F",
|
||||||
|
"b c #5B5756",
|
||||||
|
"c c #C6C5C4",
|
||||||
|
"d c #EDEDEC",
|
||||||
|
"e c #F0F0F0",
|
||||||
|
"f c #F1F1F1",
|
||||||
|
"g c #E4E3E3",
|
||||||
|
"h c #908E8C",
|
||||||
|
"i c #373230",
|
||||||
|
"j c #26221F",
|
||||||
|
"k c #5F5B59",
|
||||||
|
"l c #D0CFCF",
|
||||||
|
"m c #F9F9F9",
|
||||||
|
"n c #FEFEFE",
|
||||||
|
"o c #FDFDFD",
|
||||||
|
"p c #979594",
|
||||||
|
"q c #383431",
|
||||||
|
"r c #5F5C5A",
|
||||||
|
"s c #D1D0D0",
|
||||||
|
"t c #FBFAFA",
|
||||||
|
"u c #FFFFFF",
|
||||||
|
"v c #FCFBFB",
|
||||||
|
"w c #F8F7F7",
|
||||||
|
"x c #EDECEC",
|
||||||
|
"y c #EBEBEB",
|
||||||
|
"z c #EBEBEA",
|
||||||
|
"A c #F2F2F2",
|
||||||
|
"B c #F8F8F8",
|
||||||
|
"C c #989694",
|
||||||
|
"D c #FBFBFB",
|
||||||
|
"E c #F1F1F0",
|
||||||
|
"F c #DEDEDD",
|
||||||
|
"G c #C5C4C3",
|
||||||
|
"H c #ABA9A7",
|
||||||
|
"I c #999695",
|
||||||
|
"J c #928F8E",
|
||||||
|
"K c #918F8D",
|
||||||
|
"L c #ACAAA9",
|
||||||
|
"M c #C8C7C6",
|
||||||
|
"N c #E0DFDF",
|
||||||
|
"O c #F3F3F3",
|
||||||
|
"P c #F5F5F5",
|
||||||
|
"Q c #D9D7D7",
|
||||||
|
"R c #AAA8A7",
|
||||||
|
"S c #7B7876",
|
||||||
|
"T c #575351",
|
||||||
|
"U c #423D3B",
|
||||||
|
"V c #36322F",
|
||||||
|
"W c #322E2B",
|
||||||
|
"X c #36312F",
|
||||||
|
"Y c #5A5754",
|
||||||
|
"Z c #7F7C7A",
|
||||||
|
"` c #B1AFAE",
|
||||||
|
" . c #DDDCDC",
|
||||||
|
".. c #F5F5F4",
|
||||||
|
"+. c #FDFDFC",
|
||||||
|
"@. c #989695",
|
||||||
|
"#. c #C9C8C8",
|
||||||
|
"$. c #888584",
|
||||||
|
"%. c #4F4B48",
|
||||||
|
"&. c #25201E",
|
||||||
|
"*. c #221D1A",
|
||||||
|
"=. c #332E2C",
|
||||||
|
"-. c #524E4C",
|
||||||
|
";. c #898685",
|
||||||
|
">. c #C3C1C1",
|
||||||
|
",. c #FCFCFC",
|
||||||
|
"'. c #F2F1F1",
|
||||||
|
"). c #999795",
|
||||||
|
"!. c #EEEEEE",
|
||||||
|
"~. c #C1C0BF",
|
||||||
|
"{. c #757371",
|
||||||
|
"]. c #3E3A38",
|
||||||
|
"^. c #25211E",
|
||||||
|
"/. c #3B3734",
|
||||||
|
"(. c #6C6967",
|
||||||
|
"_. c #B4B2B1",
|
||||||
|
":. c #EBEAEA",
|
||||||
|
"<. c #F2F2F1",
|
||||||
|
"[. c #C0BFBE",
|
||||||
|
"}. c #6F6C6A",
|
||||||
|
"|. c #342F2C",
|
||||||
|
"1. c #1F1916",
|
||||||
|
"2. c #322D2A",
|
||||||
|
"3. c #666361",
|
||||||
|
"4. c #BBB9B8",
|
||||||
|
"5. c #393432",
|
||||||
|
"6. c #CECDCC",
|
||||||
|
"7. c #767371",
|
||||||
|
"8. c #332E2B",
|
||||||
|
"9. c #7B7776",
|
||||||
|
"0. c #DEDDDC",
|
||||||
|
"a. c #FEFEFD",
|
||||||
|
"b. c #FBFBFA",
|
||||||
|
"c. c #E6E6E6",
|
||||||
|
"d. c #8D8A89",
|
||||||
|
"e. c #35312E",
|
||||||
|
"f. c #E7E7E6",
|
||||||
|
"g. c #221E1B",
|
||||||
|
"h. c #706D6B",
|
||||||
|
"i. c #D6D6D5",
|
||||||
|
"j. c #F3F2F2",
|
||||||
|
"k. c #DBDAD9",
|
||||||
|
"l. c #AAA9A8",
|
||||||
|
"m. c #5E5A58",
|
||||||
|
"n. c #2A2623",
|
||||||
|
"o. c #C7C6C5",
|
||||||
|
"p. c #2A2523",
|
||||||
|
"q. c #2B2623",
|
||||||
|
"r. c #44403D",
|
||||||
|
"s. c #AEADAC",
|
||||||
|
"t. c #F6F6F6",
|
||||||
|
"u. c #E2E1E1",
|
||||||
|
"v. c #BAB9B8",
|
||||||
|
"w. c #858281",
|
||||||
|
"x. c #514D4B",
|
||||||
|
"y. c #2E2927",
|
||||||
|
"z. c #F0EFEF",
|
||||||
|
"A. c #A09E9D",
|
||||||
|
"B. c #433F3C",
|
||||||
|
"C. c #26211E",
|
||||||
|
"D. c #3A3533",
|
||||||
|
"E. c #63605E",
|
||||||
|
"F. c #9A9896",
|
||||||
|
"G. c #CCCBCA",
|
||||||
|
"H. c #F9F9F8",
|
||||||
|
"I. c #EAEAEA",
|
||||||
|
"J. c #93908F",
|
||||||
|
"K. c #5D5957",
|
||||||
|
"L. c #373330",
|
||||||
|
"M. c #25201D",
|
||||||
|
"N. c #1F1A18",
|
||||||
|
"O. c #7A7876",
|
||||||
|
"P. c #332F2C",
|
||||||
|
"Q. c #565250",
|
||||||
|
"R. c #8E8C8A",
|
||||||
|
"S. c #E9E9E8",
|
||||||
|
"T. c #EFEFEF",
|
||||||
|
"U. c #D2D0D0",
|
||||||
|
"V. c #656260",
|
||||||
|
"W. c #27221F",
|
||||||
|
"X. c #D3D2D1",
|
||||||
|
"Y. c #625E5D",
|
||||||
|
"Z. c #282320",
|
||||||
|
"`. c #1F1A16",
|
||||||
|
" + c #302B29",
|
||||||
|
".+ c #504C4A",
|
||||||
|
"++ c #83807E",
|
||||||
|
"@+ c #B9B8B7",
|
||||||
|
"#+ c #E3E3E3",
|
||||||
|
"$+ c #F7F6F6",
|
||||||
|
"%+ c #D8D7D7",
|
||||||
|
"&+ c #A9A7A7",
|
||||||
|
"*+ c #726E6D",
|
||||||
|
"=+ c #292422",
|
||||||
|
"-+ c #FAFAFA",
|
||||||
|
";+ c #5A5654",
|
||||||
|
">+ c #2C2724",
|
||||||
|
",+ c #45413E",
|
||||||
|
"'+ c #777372",
|
||||||
|
")+ c #ADABAB",
|
||||||
|
"!+ c #D9D8D8",
|
||||||
|
"~+ c #F4F4F4",
|
||||||
|
"{+ c #B7B6B5",
|
||||||
|
"]+ c #7E7B7A",
|
||||||
|
"^+ c #4E4A48",
|
||||||
|
"/+ c #CDCCCB",
|
||||||
|
"(+ c #585452",
|
||||||
|
"_+ c #24201D",
|
||||||
|
":+ c #3D3936",
|
||||||
|
"<+ c #9C9A99",
|
||||||
|
"[+ c #EEEEED",
|
||||||
|
"}+ c #FAF9F9",
|
||||||
|
"|+ c #E7E7E7",
|
||||||
|
"1+ c #C4C2C2",
|
||||||
|
"2+ c #8F8D8B",
|
||||||
|
"3+ c #342F2D",
|
||||||
|
"4+ c #2A2522",
|
||||||
|
"5+ c #413D3B",
|
||||||
|
"6+ c #64615F",
|
||||||
|
"7+ c #595553",
|
||||||
|
"8+ c #2D2825",
|
||||||
|
"9+ c #CFCFCE",
|
||||||
|
"0+ c #5C5957",
|
||||||
|
"a+ c #E9E8E8",
|
||||||
|
"b+ c #D1D0CF",
|
||||||
|
"c+ c #9D9A99",
|
||||||
|
"d+ c #65615F",
|
||||||
|
"e+ c #605D5A",
|
||||||
|
"f+ c #969493",
|
||||||
|
"g+ c #C0BEBD",
|
||||||
|
"h+ c #898785",
|
||||||
|
"i+ c #6B6866",
|
||||||
|
"j+ c #878583",
|
||||||
|
"k+ c #C1BFBF",
|
||||||
|
"l+ c #E6E6E5",
|
||||||
|
"m+ c #F7F7F7",
|
||||||
|
"n+ c #D6D5D5",
|
||||||
|
"o+ c #A6A4A3",
|
||||||
|
"p+ c #3E3A37",
|
||||||
|
"q+ c #4D4946",
|
||||||
|
"r+ c #8F8C8B",
|
||||||
|
"s+ c #979593",
|
||||||
|
"t+ c #E7E6E6",
|
||||||
|
"u+ c #4A4644",
|
||||||
|
"v+ c #7A7775",
|
||||||
|
"w+ c #B0AEAD",
|
||||||
|
"x+ c #DCDCDC",
|
||||||
|
"y+ c #F4F3F3",
|
||||||
|
"z+ c #B2B0AF",
|
||||||
|
"A+ c #7B7877",
|
||||||
|
"B+ c #4B4745",
|
||||||
|
"C+ c #2D2826",
|
||||||
|
"D+ c #312C29",
|
||||||
|
"E+ c #827F7D",
|
||||||
|
"F+ c #D7D6D6",
|
||||||
|
"G+ c #ABA9A8",
|
||||||
|
"H+ c #4C4845",
|
||||||
|
"I+ c #A4A2A0",
|
||||||
|
"J+ c #EFEFEE",
|
||||||
|
"K+ c #E5E5E4",
|
||||||
|
"L+ c #888684",
|
||||||
|
"M+ c #55514F",
|
||||||
|
"N+ c #332F2D",
|
||||||
|
"O+ c #ECEBEB",
|
||||||
|
"P+ c #D0CFCE",
|
||||||
|
"Q+ c #7C7978",
|
||||||
|
"R+ c #92908E",
|
||||||
|
"S+ c #CAC9C8",
|
||||||
|
"T+ c #FAFAF9",
|
||||||
|
"U+ c #ECECEC",
|
||||||
|
"V+ c #625F5C",
|
||||||
|
"W+ c #383331",
|
||||||
|
"X+ c #3C3735",
|
||||||
|
"Y+ c #A19F9D",
|
||||||
|
"Z+ c #CACAC9",
|
||||||
|
"`+ c #C7C6C6",
|
||||||
|
" @ c #E6E5E5",
|
||||||
|
".@ c #D5D4D4",
|
||||||
|
"+@ c #A3A1A0",
|
||||||
|
"@@ c #272320",
|
||||||
|
"#@ c #494543",
|
||||||
|
"$@ c #B5B3B2",
|
||||||
|
"%@ c #DCDBDA",
|
||||||
|
"&@ c #AFAEAD",
|
||||||
|
"*@ c #46423F",
|
||||||
|
"=@ c #CFCECD",
|
||||||
|
"-@ c #E3E2E2",
|
||||||
|
";@ c #868381",
|
||||||
|
">@ c #534F4D",
|
||||||
|
",@ c #312D2A",
|
||||||
|
"'@ c #E5E4E4",
|
||||||
|
")@ c #DCDBDB",
|
||||||
|
"!@ c #5E5B59",
|
||||||
|
"~@ c #272220",
|
||||||
|
"{@ c #B7B5B4",
|
||||||
|
"]@ c #CBCAC9",
|
||||||
|
"^@ c #767271",
|
||||||
|
"/@ c #3E3937",
|
||||||
|
"(@ c #8E8B8A",
|
||||||
|
"_@ c #B3B0B0",
|
||||||
|
":@ c #2D2926",
|
||||||
|
"<@ c #35302E",
|
||||||
|
"[@ c #75716F",
|
||||||
|
"}@ c #F7F7F6",
|
||||||
|
"|@ c #E8E7E7",
|
||||||
|
"1@ c #5D5A57",
|
||||||
|
"2@ c #1E1A17",
|
||||||
|
"3@ c #BDBCBB",
|
||||||
|
"4@ c #EFEEEE",
|
||||||
|
"5@ c #ADACAB",
|
||||||
|
"6@ c #3C3835",
|
||||||
|
"7@ c #2C2725",
|
||||||
|
"8@ c #817F7D",
|
||||||
|
"9@ c #C4C3C2",
|
||||||
|
"0@ c #8C8A88",
|
||||||
|
"a@ c #3B3634",
|
||||||
|
"b@ c #433E3C",
|
||||||
|
"c@ c #696564",
|
||||||
|
"d@ c #A09D9C",
|
||||||
|
"e@ c #D7D6D5",
|
||||||
|
"f@ c #E4E4E4",
|
||||||
|
"g@ c #9B9898",
|
||||||
|
"h@ c #797675",
|
||||||
|
"i@ c #55524F",
|
||||||
|
"j@ c #635F5D",
|
||||||
|
"k@ c #807D7B",
|
||||||
|
"l@ c #CECECD",
|
||||||
|
"m@ c #F6F6F5",
|
||||||
|
"n@ c #DBDADA",
|
||||||
|
"o@ c #C3C2C1",
|
||||||
|
"p@ c #C2C1C0",
|
||||||
|
"q@ c #C4C3C3",
|
||||||
|
"r@ c #CDCCCC",
|
||||||
|
"s@ c #DFDFDE",
|
||||||
|
"t@ c #989594",
|
||||||
|
"u@ c #5E5A59",
|
||||||
|
"v@ c #CECDCD",
|
||||||
|
"w@ c #969492",
|
||||||
|
"x@ c #B5B4B3",
|
||||||
|
"y@ c #D8D8D7",
|
||||||
|
"z@ c #DBDBDA",
|
||||||
|
"A@ c #34302D",
|
||||||
|
"B@ c #615E5B",
|
||||||
|
"C@ c #726F6D",
|
||||||
|
"D@ c #716F6C",
|
||||||
|
"E@ c #6D6A67",
|
||||||
|
"F@ c #4B4845",
|
||||||
|
"G@ c #292521",
|
||||||
|
"H@ c #272421",
|
||||||
|
"I@ c #6E6C6B",
|
||||||
|
"J@ c #302C29",
|
||||||
|
". + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . ",
|
||||||
|
"@ # $ % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % & # * ",
|
||||||
|
"= - ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; > , ",
|
||||||
|
"' ) ! ~ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ ~ ~ ! ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ! ~ ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ ! ^ / ( _ : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : < [ } | ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ 1 2 3 4 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 8 9 0 ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ a b c d e f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f e g h i ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j k l m n n n n n n n n n n n o o o o o o o o n n n n n n n n n n n n n o e p q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u u u n n v w f x y z x A B v o n u u u u u u u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u u n D E F G H I J K C L M N O D n u u u u u u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u o P Q R S T U V W W X & Y Z ` ...+.n u u u u u u u n f @.q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u o f #.$.%.} &.; ! ! ! ! *.a =.-.;.>.z ,.n u u u u u u n '.)./ ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u o !.~.{.].^.! { { { { { { { { ! &./.(._.:.,.u u u u u u n f )./ ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u n <.[.}.|.*.{ { { { { { 1.{ { { { { ; 2.3.4.O n u u u u u n e @.5.! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u n B 6.7.8.! { { { { ~ ~ ~ ~ ~ 1.{ { { { ! =.9.0.D u u u n a.b.c.d.e.! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u o f.).& *.{ { { ~ ~ ~ ~ ~ ~ ~ { { { { ~ g.=.h.i.b.u u n ,.j.k.l.m.n.~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u n m o.3.p.~ { { ~ ~ ~ ~ ~ ~ { { { { { ; q.r.h.s.:.,.n ,.t.u.v.w.x.y.; ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u n z.A.B.; { { ~ ~ ~ ~ ~ { { { { { ! C.D.E.F.G.x D o H.I.M J.K.L.M.N.~ ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u ,.N O.0 ~ { { ~ ~ ~ 1.{ { { { ~ 1 P.Q.R.c S.B o t T.U.A.V./.W.! { { { ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u D X.Y.Z.`.{ ~ ~ ~ { { { { ~ *. +.+++@+#+$+,.D j.%+&+*+& =+! { { ~ ~ ~ ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u -+6.;+M.~ { ~ { { { { ~ ; >+,+'+)+!+'.D D ~+N {+]+^+0 | ~ { ~ *.q.>+*.~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u -+/+(+_+{ { { { { { ! Z.:+3.<+s [+}+,.B |+1+2+;+3+1 ~ { { ; 4+5+6+7+8+! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u -+9+0+C.{ { { { ~ 1 P.;+h G a+m ,.-+z.b+c+d+/.j ! { { { _+q e+f+g+h+V ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u D %+i+4+{ { ~ | } x.j+k+l+m+o D f n+o+i+p+Z.! { { { ~ M.q+r+c S.y s+q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u o t+$.e.! ; 8+u+v+w+x+y+D D ~+ .z+A+B+C+*.~ { { { { ! D+E+F+..,.e C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u n O G+H+8+< (.I+X.J+-+,.$+K+k+L+M+N+1 ~ { { { { { { ! V s+O+o n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u -+P+Q+V.R+S+:.m ,.T+U+G.F.V+W+C.! { { { { { ~ 1.{ ; X+Y+T.n n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u o T.Z+`+ @B ,.D f .@+@i+< @@! { { { { { ~ ~ ~ { { | #@$@~+n n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u ,.m+m+,.D O %@&@7.*@>+; { { { { { ~ ~ ~ ~ 1.{ { Z.V+=@-+u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u n n o m+-@4.;@>@,@| ~ { { { { ~ ~ ~ ~ ~ ~ { { ! L.L+'@o u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u n m )@<+!@W+M.~ { { { { `.~ ~ ~ ~ ~ ~ { { { ~@(+{@..n u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u n P ]@^@i *.{ { { { { ~ ~ ~ ~ ~ ~ { { { { ; /@(@N ,.u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u ,.O+_@r :@! { { { { ~ ~ ~ ~ `.{ { { { ; <@[@S+}@n u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u n D |@H 1@0 ; 2@{ { { { { { { { { ~ _+q *+3@4@o u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u n D K+5@i+6@@@; ~ ~ ~ ~ ~ ~ ~ *.7@#@8@9@[+,.u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u u n D y G 0@7+a@7@M.| *.| C.y.b@c@d@e@~+o u u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u u u n o m+f@k+g@h@k >@-.i@j@k@5 l@U+-+n u u u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r s t u u u u u u u u u n n ,.m@z n@]@o@p@q@r@s@T.B o n u u u u u u u n f C q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ j r b+-+u u u u u u u u u u u n n o D m B B B m D o n n u u u u u u u u n f t@q ! ~ ] + ",
|
||||||
|
"+ ] ~ ~ a u@v@m+D ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.D !.w@W+! ~ ] + ",
|
||||||
|
"+ ] ~ ~ ^.M+x@y@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@)@z@l w.A@! ~ ] + ",
|
||||||
|
"+ ] ~ ~ *.V B@h.C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@C@D@E@F@Z.~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ ~ | G@>+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+8+>+q.C.! ~ ~ ] + ",
|
||||||
|
"+ ] ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ] + ",
|
||||||
|
"+ H@~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ H@+ ",
|
||||||
|
"I@J@H@] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] H@J@I@",
|
||||||
|
". I@' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ' I@. "};
|
88
etip/Fortune.cpp
Normal file
88
etip/Fortune.cpp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Etip, show some tips!
|
||||||
|
* Part of Equinox Desktop Environment (EDE).
|
||||||
|
* Copyright (c) 2008 EDE Authors.
|
||||||
|
*
|
||||||
|
* This program is licensed under the terms of the
|
||||||
|
* GNU General Public License version 2 or newer.
|
||||||
|
* See COPYING for the details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Fortune.h"
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
FortuneFile* fortune_open(const char* str_path, const char* dat_path) {
|
||||||
|
FILE* sp = fopen(str_path, "r");
|
||||||
|
if(!sp)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
FILE* dp = fopen(dat_path, "r");
|
||||||
|
if(!dp) {
|
||||||
|
fclose(sp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
FortuneFile* f = new FortuneFile;
|
||||||
|
f->str_file = sp;
|
||||||
|
f->dat_file = dp;
|
||||||
|
|
||||||
|
fread((char*)&f->data, sizeof(StrFile), 1, f->dat_file);
|
||||||
|
f->data.str_version = ntohl(f->data.str_version);
|
||||||
|
f->data.str_numstr = ntohl(f->data.str_numstr);
|
||||||
|
f->data.str_longlen = ntohl(f->data.str_longlen);
|
||||||
|
f->data.str_shortlen = ntohl(f->data.str_shortlen);
|
||||||
|
f->data.str_flags = ntohl(f->data.str_flags);
|
||||||
|
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fortune_close(FortuneFile* f) {
|
||||||
|
fclose(f->str_file);
|
||||||
|
fclose(f->dat_file);
|
||||||
|
|
||||||
|
delete f;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned int fortune_num_items(FortuneFile* f) {
|
||||||
|
return f->data.str_numstr;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool fortune_get(FortuneFile* f, unsigned int num, edelib::String& ret) {
|
||||||
|
if(num >= fortune_num_items(f))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// read position from .dat file
|
||||||
|
off_t seek_pts[2];
|
||||||
|
|
||||||
|
fseek(f->dat_file, (long)(sizeof(StrFile) + num * sizeof(seek_pts[0])), 0);
|
||||||
|
fread(seek_pts, sizeof(seek_pts), 1, f->dat_file);
|
||||||
|
seek_pts[0] = ntohl(seek_pts[0]);
|
||||||
|
seek_pts[1] = ntohl(seek_pts[1]);
|
||||||
|
|
||||||
|
// now jump to that position in string file
|
||||||
|
fseek(f->str_file, (long)seek_pts[0], 0);
|
||||||
|
|
||||||
|
char buff[1024];
|
||||||
|
char* p;
|
||||||
|
char ch;
|
||||||
|
|
||||||
|
ret.clear();
|
||||||
|
|
||||||
|
while(fgets((char*)buff, sizeof(buff), f->str_file) != NULL && !STR_ENDSTRING(buff, f->data)) {
|
||||||
|
if(f->data.str_flags & STR_ROTATED) {
|
||||||
|
for(p = buff; (ch = *p); p++) {
|
||||||
|
if(isupper(ch))
|
||||||
|
*p = 'A' + (ch - 'A' + 13) % 26;
|
||||||
|
else if(islower(ch))
|
||||||
|
*p = 'a' + (ch - 'a' + 13) % 26;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ret += buff;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
56
etip/Fortune.h
Normal file
56
etip/Fortune.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/*
|
||||||
|
* $Id$
|
||||||
|
*
|
||||||
|
* Etip, show some tips!
|
||||||
|
* Part of Equinox Desktop Environment (EDE).
|
||||||
|
* Copyright (c) 2008 EDE Authors.
|
||||||
|
*
|
||||||
|
* This program is licensed under the terms of the
|
||||||
|
* GNU General Public License version 2 or newer.
|
||||||
|
* See COPYING for the details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __FORTUNE_H__
|
||||||
|
#define __FORTUNE_H__
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <edelib/String.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is a reader for fortune plain and their corresponding binary .dat files.
|
||||||
|
* Based on code from Amy A. Lewis since I was too lazy to search format specs
|
||||||
|
* around the net.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define DAT_VERSION 2 // we know only for this
|
||||||
|
|
||||||
|
#define STR_ENDSTRING(line, tbl) ((line)[0] == tbl.stuff[0] && (line)[1] == '\n')
|
||||||
|
#define STR_ROTATED 0x3 // rot-13'd text
|
||||||
|
|
||||||
|
struct StrFile {
|
||||||
|
unsigned int str_version; // version number
|
||||||
|
unsigned int str_numstr; // number of strings in the file
|
||||||
|
unsigned int str_longlen; // length of the longest string
|
||||||
|
unsigned int str_shortlen; // length of the shortest string
|
||||||
|
unsigned int str_flags; // bit field for flags
|
||||||
|
char stuff[4]; // long aligned space, stuff[0] is delimiter
|
||||||
|
};
|
||||||
|
|
||||||
|
struct FortuneFile {
|
||||||
|
FILE* str_file;
|
||||||
|
FILE* dat_file;
|
||||||
|
StrFile data;
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: this should be a class
|
||||||
|
|
||||||
|
FortuneFile* fortune_open(const char* str_path, const char* dat_path);
|
||||||
|
void fortune_close(FortuneFile* f);
|
||||||
|
|
||||||
|
// returns a number of known strings
|
||||||
|
unsigned int fortune_num_items(FortuneFile* f);
|
||||||
|
|
||||||
|
// gets strings at num; first is at 0 and last at fortune_num_items() - 1
|
||||||
|
bool fortune_get(FortuneFile* f, unsigned int num, edelib::String& ret);
|
||||||
|
|
||||||
|
#endif
|
30
etip/Jamfile
30
etip/Jamfile
@ -10,5 +10,31 @@
|
|||||||
|
|
||||||
SubDir TOP etip ;
|
SubDir TOP etip ;
|
||||||
|
|
||||||
MakeProgram etip : etip.cpp ;
|
SOURCE = Fortune.cpp etip.cpp ;
|
||||||
ExtractStrings locale : etip.cpp ;
|
|
||||||
|
EdeProgram etip : $(SOURCE) ;
|
||||||
|
TranslationStrings locale : $(SOURCE) ;
|
||||||
|
EdeManual doc/etip.txt : doc/etip.jpg ;
|
||||||
|
|
||||||
|
ProgramBare etip-compiler : etip-compiler.c ;
|
||||||
|
|
||||||
|
# this rule is for compiling fortune files
|
||||||
|
rule FortuneCompile
|
||||||
|
{
|
||||||
|
Depends $(<) : etip-compiler ;
|
||||||
|
Depends $(<) : $(>) ;
|
||||||
|
Depends all : $(<) ;
|
||||||
|
|
||||||
|
SEARCH on $(>) = $(SUBDIR) ;
|
||||||
|
MakeLocate $(<) : $(SUBDIR) ;
|
||||||
|
|
||||||
|
FortuneCompile1 $(<) : $(>) ;
|
||||||
|
Clean clean : $(<) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
actions FortuneCompile1
|
||||||
|
{
|
||||||
|
$(TOP)/etip/etip-compiler "$(>)" "$(<)"
|
||||||
|
}
|
||||||
|
|
||||||
|
FortuneCompile tips/ede.dat : tips/ede ;
|
||||||
|
BIN
etip/doc/etip.jpg
Normal file
BIN
etip/doc/etip.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
8
etip/doc/etip.txt
Normal file
8
etip/doc/etip.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Etip documentation
|
||||||
|
===================
|
||||||
|
|
||||||
|
Etip is 'Tip of the Day' program which will show tips about EDE usage.
|
||||||
|
It is also capable to show forutune-like tips, reading forutune files.
|
||||||
|
|
||||||
|
image:images/etip.jpg[Etip]
|
||||||
|
|
564
etip/etip-compiler.c
Normal file
564
etip/etip-compiler.c
Normal file
@ -0,0 +1,564 @@
|
|||||||
|
/* $NetBSD: strfile.c,v 1.3 1995/03/23 08:28:47 cgd Exp $ */
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Copyright (c) 1989, 1993
|
||||||
|
* The Regents of the University of California. All rights reserved.
|
||||||
|
*
|
||||||
|
* This code is derived from software contributed to Berkeley by
|
||||||
|
* Ken Arnold.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by the University of
|
||||||
|
* California, Berkeley and its contributors.
|
||||||
|
* 4. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Changes, September 1995, to make the damn thing actually sort instead
|
||||||
|
* of just pretending. Amy A. Lewis
|
||||||
|
*
|
||||||
|
* And lots more.
|
||||||
|
*
|
||||||
|
* Fixed the special cases of %^J% (an empty fortune), no 'separator' at
|
||||||
|
* the end of the file, and a trailing newline at the end of the file, all
|
||||||
|
* of which produced total ballsup at one point or another.
|
||||||
|
*
|
||||||
|
* This included adding a routine to go back and write over the last pointer
|
||||||
|
* written or stored, for the case of an empty fortune.
|
||||||
|
*
|
||||||
|
* unstr also had to be modified (well, for *lots* of reasons, but this was
|
||||||
|
* one) to be certain to put the delimiters in the right places.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
#ifndef lint
|
||||||
|
static char copyright[] =
|
||||||
|
"@(#) Copyright (c) 1989, 1993\n\
|
||||||
|
The Regents of the University of California. All rights reserved.\n";
|
||||||
|
#endif / * not lint * /
|
||||||
|
|
||||||
|
#ifndef lint
|
||||||
|
#if 0
|
||||||
|
static char sccsid[] = "@(#)strfile.c 8.1 (Berkeley) 5/31/93";
|
||||||
|
#else
|
||||||
|
static char rcsid[] = "$NetBSD: strfile.c,v 1.3 1995/03/23 08:28:47 cgd Exp $";
|
||||||
|
#endif
|
||||||
|
#endif / * not lint * /
|
||||||
|
*
|
||||||
|
*I haven't the faintest flipping idea what all that is, so kill the warnings
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#ifndef MAXPATHLEN
|
||||||
|
#define MAXPATHLEN 1024
|
||||||
|
#endif /* MAXPATHLEN */
|
||||||
|
|
||||||
|
#define STR_ENDSTRING(line,tbl) \
|
||||||
|
((line)[0] == (tbl).str_delim && (line)[1] == '\n')
|
||||||
|
|
||||||
|
typedef struct { /* information table */
|
||||||
|
#define VERSION 2
|
||||||
|
u_int32_t str_version; /* version number */
|
||||||
|
u_int32_t str_numstr; /* # of strings in the file */
|
||||||
|
u_int32_t str_longlen; /* length of longest string */
|
||||||
|
u_int32_t str_shortlen; /* length of shortest string */
|
||||||
|
#define STR_RANDOM 0x1 /* randomized pointers */
|
||||||
|
#define STR_ORDERED 0x2 /* ordered pointers */
|
||||||
|
#define STR_ROTATED 0x4 /* rot-13'd text */
|
||||||
|
u_int32_t str_flags; /* bit field for flags */
|
||||||
|
u_int8_t stuff[4]; /* long aligned space */
|
||||||
|
#define str_delim stuff[0] /* delimiting character */
|
||||||
|
} STRFILE;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This program takes a file composed of strings seperated by
|
||||||
|
* lines containing only the delimiting character (the default
|
||||||
|
* character is '%') and creates another file which consists of a table
|
||||||
|
* describing the file (structure from "strfile.h"), a table of seek
|
||||||
|
* pointers to the start of the strings, and the strings, each terminated
|
||||||
|
* by a null byte. Usage:
|
||||||
|
*
|
||||||
|
* % strfile [-iorsx] [ -cC ] sourcefile [ datafile ]
|
||||||
|
*
|
||||||
|
* c - Change delimiting character from '%' to 'C'
|
||||||
|
* s - Silent. Give no summary of data processed at the end of
|
||||||
|
* the run.
|
||||||
|
* o - order the strings in alphabetic order
|
||||||
|
* i - if ordering, ignore case
|
||||||
|
* r - randomize the order of the strings
|
||||||
|
* x - set rotated bit
|
||||||
|
*
|
||||||
|
* Ken Arnold Sept. 7, 1978 --
|
||||||
|
*
|
||||||
|
* Added ordering options.
|
||||||
|
*
|
||||||
|
* Made ordering options do more than set the bloody flag, September 95 A. Lewis
|
||||||
|
*
|
||||||
|
* Always make sure that your loop control variables aren't set to bloody
|
||||||
|
* *zero* before distributing the bloody code, all right?
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define TRUE 1
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
#define STORING_PTRS (Oflag || Rflag)
|
||||||
|
#define CHUNKSIZE 512
|
||||||
|
|
||||||
|
#define ALWAYS 1
|
||||||
|
#define ALLOC(ptr,sz) if (ALWAYS) { \
|
||||||
|
if (ptr == NULL) \
|
||||||
|
ptr = malloc((unsigned int) (CHUNKSIZE * sizeof *ptr)); \
|
||||||
|
else if (((sz) + 1) % CHUNKSIZE == 0) \
|
||||||
|
ptr = realloc((void *) ptr, ((unsigned int) ((sz) + CHUNKSIZE) * sizeof *ptr)); \
|
||||||
|
if (ptr == NULL) { \
|
||||||
|
fprintf(stderr, "out of space\n"); \
|
||||||
|
exit(1); \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
char first;
|
||||||
|
int32_t pos;
|
||||||
|
}
|
||||||
|
STR;
|
||||||
|
|
||||||
|
char *Infile = NULL, /* input file name */
|
||||||
|
Outfile[MAXPATHLEN] = "", /* output file name */
|
||||||
|
Delimch = '%'; /* delimiting character */
|
||||||
|
|
||||||
|
int Sflag = FALSE; /* silent run flag */
|
||||||
|
int Oflag = FALSE; /* ordering flag */
|
||||||
|
int Iflag = FALSE; /* ignore case flag */
|
||||||
|
int Rflag = FALSE; /* randomize order flag */
|
||||||
|
int Xflag = FALSE; /* set rotated bit */
|
||||||
|
long Num_pts = 0; /* number of pointers/strings */
|
||||||
|
|
||||||
|
int32_t *Seekpts;
|
||||||
|
|
||||||
|
FILE *Sort_1, *Sort_2; /* pointers for sorting */
|
||||||
|
|
||||||
|
STRFILE Tbl; /* statistics table */
|
||||||
|
|
||||||
|
STR *Firstch; /* first chars of each string */
|
||||||
|
|
||||||
|
void usage(void)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "etip-compiler [-iorsx] [-c char] sourcefile [datafile]\n");
|
||||||
|
fprintf(stderr, "Creates .dat file from fortune source file\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This routine evaluates arguments from the command line
|
||||||
|
*/
|
||||||
|
void getargs(int argc, char **argv)
|
||||||
|
{
|
||||||
|
extern char *optarg;
|
||||||
|
extern int optind;
|
||||||
|
int ch;
|
||||||
|
|
||||||
|
while ((ch = getopt(argc, argv, "c:iorsx")) != EOF)
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
case 'c': /* new delimiting char */
|
||||||
|
Delimch = *optarg;
|
||||||
|
if (!isascii(Delimch))
|
||||||
|
{
|
||||||
|
printf("bad delimiting character: '\\%o\n'",
|
||||||
|
Delimch);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'i': /* ignore case in ordering */
|
||||||
|
Iflag++;
|
||||||
|
break;
|
||||||
|
case 'o': /* order strings */
|
||||||
|
Oflag++;
|
||||||
|
break;
|
||||||
|
case 'r': /* randomize pointers */
|
||||||
|
Rflag++;
|
||||||
|
break;
|
||||||
|
case 's': /* silent */
|
||||||
|
Sflag++;
|
||||||
|
break;
|
||||||
|
case 'x': /* set the rotated bit */
|
||||||
|
Xflag++;
|
||||||
|
break;
|
||||||
|
case '?':
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
argv += optind;
|
||||||
|
|
||||||
|
if (*argv)
|
||||||
|
{
|
||||||
|
Infile = *argv;
|
||||||
|
if (*++argv)
|
||||||
|
(void) strcpy(Outfile, *argv);
|
||||||
|
}
|
||||||
|
if (!Infile)
|
||||||
|
{
|
||||||
|
puts("No input file name");
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
if (*Outfile == '\0')
|
||||||
|
{
|
||||||
|
strcpy(Outfile, Infile);
|
||||||
|
strcat(Outfile, ".dat");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* add_offset:
|
||||||
|
* Add an offset to the list, or write it out, as appropriate.
|
||||||
|
*/
|
||||||
|
void add_offset(FILE * fp, int32_t off)
|
||||||
|
{
|
||||||
|
int32_t net;
|
||||||
|
|
||||||
|
if (!STORING_PTRS)
|
||||||
|
{
|
||||||
|
net = htonl(off);
|
||||||
|
fwrite(&net, 1, sizeof net, fp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ALLOC(Seekpts, Num_pts + 1);
|
||||||
|
Seekpts[Num_pts] = off;
|
||||||
|
}
|
||||||
|
Num_pts++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* fix_last_offset:
|
||||||
|
* Used when we have two separators in a row.
|
||||||
|
*/
|
||||||
|
void fix_last_offset(FILE * fp, int32_t off)
|
||||||
|
{
|
||||||
|
int32_t net;
|
||||||
|
|
||||||
|
if (!STORING_PTRS)
|
||||||
|
{
|
||||||
|
net = htonl(off);
|
||||||
|
fseek(fp, -(sizeof net), SEEK_CUR);
|
||||||
|
fwrite(&net, 1, sizeof net, fp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Seekpts[Num_pts - 1] = off;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* cmp_str:
|
||||||
|
* Compare two strings in the file
|
||||||
|
*/
|
||||||
|
int cmp_str(const void *v1, const void *v2)
|
||||||
|
{
|
||||||
|
register int c1, c2;
|
||||||
|
register int n1, n2;
|
||||||
|
register STR *p1, *p2;
|
||||||
|
|
||||||
|
#define SET_N(nf,ch) (nf = (ch == '\n'))
|
||||||
|
#define IS_END(ch,nf) (ch == Delimch && nf)
|
||||||
|
|
||||||
|
p1 = (STR *) v1;
|
||||||
|
p2 = (STR *) v2;
|
||||||
|
c1 = p1->first;
|
||||||
|
c2 = p2->first;
|
||||||
|
if (c1 != c2)
|
||||||
|
return c1 - c2;
|
||||||
|
|
||||||
|
fseek(Sort_1, p1->pos, 0);
|
||||||
|
fseek(Sort_2, p2->pos, 0);
|
||||||
|
|
||||||
|
n1 = FALSE;
|
||||||
|
n2 = FALSE;
|
||||||
|
while (!isalnum(c1 = getc(Sort_1)) && c1 != '\0')
|
||||||
|
SET_N(n1, c1);
|
||||||
|
while (!isalnum(c2 = getc(Sort_2)) && c2 != '\0')
|
||||||
|
SET_N(n2, c2);
|
||||||
|
|
||||||
|
while (!IS_END(c1, n1) && !IS_END(c2, n2))
|
||||||
|
{
|
||||||
|
if (Iflag)
|
||||||
|
{
|
||||||
|
if (isupper(c1))
|
||||||
|
c1 = tolower(c1);
|
||||||
|
if (isupper(c2))
|
||||||
|
c2 = tolower(c2);
|
||||||
|
}
|
||||||
|
if (c1 != c2)
|
||||||
|
return c1 - c2;
|
||||||
|
SET_N(n1, c1);
|
||||||
|
SET_N(n2, c2);
|
||||||
|
c1 = getc(Sort_1);
|
||||||
|
c2 = getc(Sort_2);
|
||||||
|
}
|
||||||
|
if (IS_END(c1, n1))
|
||||||
|
c1 = 0;
|
||||||
|
if (IS_END(c2, n2))
|
||||||
|
c2 = 0;
|
||||||
|
return c1 - c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* do_order:
|
||||||
|
* Order the strings alphabetically (possibly ignoring case).
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
do_order(void)
|
||||||
|
{
|
||||||
|
register long i;
|
||||||
|
register int32_t *lp;
|
||||||
|
register STR *fp;
|
||||||
|
|
||||||
|
Sort_1 = fopen(Infile, "r");
|
||||||
|
Sort_2 = fopen(Infile, "r");
|
||||||
|
qsort((char *) Firstch, (int) Num_pts - 1, sizeof *Firstch, cmp_str);
|
||||||
|
/* i = Tbl.str_numstr;
|
||||||
|
* Fucking brilliant. Tbl.str_numstr was initialized to zero, and is still zero
|
||||||
|
*/
|
||||||
|
i = Num_pts - 1;
|
||||||
|
lp = Seekpts;
|
||||||
|
fp = Firstch;
|
||||||
|
while (i--)
|
||||||
|
*lp++ = fp++->pos;
|
||||||
|
fclose(Sort_1);
|
||||||
|
fclose(Sort_2);
|
||||||
|
Tbl.str_flags |= STR_ORDERED;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
unctrl(char c)
|
||||||
|
{
|
||||||
|
static char buf[3];
|
||||||
|
|
||||||
|
if (isprint(c))
|
||||||
|
{
|
||||||
|
buf[0] = c;
|
||||||
|
buf[1] = '\0';
|
||||||
|
}
|
||||||
|
else if (c == 0177)
|
||||||
|
{
|
||||||
|
buf[0] = '^';
|
||||||
|
buf[1] = '?';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buf[0] = '^';
|
||||||
|
buf[1] = c + 'A' - 1;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* randomize:
|
||||||
|
* Randomize the order of the string table. We must be careful
|
||||||
|
* not to randomize across delimiter boundaries. All
|
||||||
|
* randomization is done within each block.
|
||||||
|
*/
|
||||||
|
void randomize(void)
|
||||||
|
{
|
||||||
|
register int cnt, i;
|
||||||
|
register int32_t tmp;
|
||||||
|
register int32_t *sp;
|
||||||
|
extern time_t time(time_t *);
|
||||||
|
|
||||||
|
srandom((int) (time((time_t *) NULL) + getpid()));
|
||||||
|
|
||||||
|
Tbl.str_flags |= STR_RANDOM;
|
||||||
|
/* cnt = Tbl.str_numstr;
|
||||||
|
* See comment above. Isn't this stuff distributed worldwide? How embarrassing!
|
||||||
|
*/
|
||||||
|
cnt = Num_pts;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* move things around randomly
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (sp = Seekpts; cnt > 0; cnt--, sp++)
|
||||||
|
{
|
||||||
|
i = random() % cnt;
|
||||||
|
tmp = sp[0];
|
||||||
|
sp[0] = sp[i];
|
||||||
|
sp[i] = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* main:
|
||||||
|
* Drive the sucker. There are two main modes -- either we store
|
||||||
|
* the seek pointers, if the table is to be sorted or randomized,
|
||||||
|
* or we write the pointer directly to the file, if we are to stay
|
||||||
|
* in file order. If the former, we allocate and re-allocate in
|
||||||
|
* CHUNKSIZE blocks; if the latter, we just write each pointer,
|
||||||
|
* and then seek back to the beginning to write in the table.
|
||||||
|
*/
|
||||||
|
int main(int ac, char **av)
|
||||||
|
{
|
||||||
|
register unsigned char *sp;
|
||||||
|
register FILE *inf, *outf;
|
||||||
|
register int32_t last_off, length, pos, *p;
|
||||||
|
register int first, cnt;
|
||||||
|
register char *nsp;
|
||||||
|
register STR *fp;
|
||||||
|
static char string[257];
|
||||||
|
|
||||||
|
getargs(ac, av); /* evalute arguments */
|
||||||
|
if ((inf = fopen(Infile, "r")) == NULL)
|
||||||
|
{
|
||||||
|
perror(Infile);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((outf = fopen(Outfile, "w")) == NULL)
|
||||||
|
{
|
||||||
|
perror(Outfile);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (!STORING_PTRS)
|
||||||
|
(void) fseek(outf, sizeof Tbl, 0);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Write the strings onto the file
|
||||||
|
*/
|
||||||
|
|
||||||
|
Tbl.str_longlen = 0;
|
||||||
|
Tbl.str_shortlen = (unsigned int) 0xffffffff;
|
||||||
|
Tbl.str_delim = Delimch;
|
||||||
|
Tbl.str_version = VERSION;
|
||||||
|
first = Oflag;
|
||||||
|
add_offset(outf, ftell(inf));
|
||||||
|
last_off = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
sp = fgets(string, 256, inf);
|
||||||
|
if (sp == NULL || STR_ENDSTRING(sp, Tbl))
|
||||||
|
{
|
||||||
|
pos = ftell(inf);
|
||||||
|
length = pos - last_off - (sp ? strlen(sp) : 0);
|
||||||
|
if (!length)
|
||||||
|
/* Here's where we go back and fix things, if the
|
||||||
|
* 'fortune' just read was the null string.
|
||||||
|
* We had to make the assignment of last_off slightly
|
||||||
|
* redundant to achieve this.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
if (pos - last_off == 2)
|
||||||
|
fix_last_offset(outf, pos);
|
||||||
|
last_off = pos;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
last_off = pos;
|
||||||
|
add_offset(outf, pos);
|
||||||
|
if (Tbl.str_longlen < length)
|
||||||
|
Tbl.str_longlen = length;
|
||||||
|
if (Tbl.str_shortlen > length)
|
||||||
|
Tbl.str_shortlen = length;
|
||||||
|
first = Oflag;
|
||||||
|
}
|
||||||
|
else if (first)
|
||||||
|
{
|
||||||
|
for (nsp = sp; !isalnum(*nsp); nsp++)
|
||||||
|
continue;
|
||||||
|
ALLOC(Firstch, Num_pts);
|
||||||
|
fp = &Firstch[Num_pts - 1];
|
||||||
|
if (Iflag && isupper(*nsp))
|
||||||
|
fp->first = tolower(*nsp);
|
||||||
|
else
|
||||||
|
fp->first = *nsp;
|
||||||
|
fp->pos = Seekpts[Num_pts - 1];
|
||||||
|
first = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (sp != NULL);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* write the tables in
|
||||||
|
*/
|
||||||
|
|
||||||
|
fclose(inf);
|
||||||
|
|
||||||
|
if (Oflag)
|
||||||
|
do_order();
|
||||||
|
else if (Rflag)
|
||||||
|
randomize();
|
||||||
|
|
||||||
|
if (Xflag)
|
||||||
|
Tbl.str_flags |= STR_ROTATED;
|
||||||
|
|
||||||
|
if (!Sflag)
|
||||||
|
{
|
||||||
|
printf("\"%s\" created\n", Outfile);
|
||||||
|
if (Num_pts == 1)
|
||||||
|
puts("There was no string");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Num_pts == 2)
|
||||||
|
puts("There was 1 string");
|
||||||
|
else
|
||||||
|
printf("There were %ld strings\n", Num_pts - 1);
|
||||||
|
printf("Longest string: %lu byte%s\n", Tbl.str_longlen,
|
||||||
|
Tbl.str_longlen == 1 ? "" : "s");
|
||||||
|
printf("Shortest string: %lu byte%s\n", Tbl.str_shortlen,
|
||||||
|
Tbl.str_shortlen == 1 ? "" : "s");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fseek(outf, (off_t) 0, 0);
|
||||||
|
Tbl.str_version = htonl(Tbl.str_version);
|
||||||
|
Tbl.str_numstr = htonl(Num_pts - 1);
|
||||||
|
/* Look, Ma! After using the variable three times, let's store
|
||||||
|
* something in it!
|
||||||
|
*/
|
||||||
|
Tbl.str_longlen = htonl(Tbl.str_longlen);
|
||||||
|
Tbl.str_shortlen = htonl(Tbl.str_shortlen);
|
||||||
|
Tbl.str_flags = htonl(Tbl.str_flags);
|
||||||
|
fwrite(&Tbl.str_version, sizeof Tbl.str_version, 1, outf);
|
||||||
|
fwrite(&Tbl.str_numstr, sizeof Tbl.str_numstr, 1, outf);
|
||||||
|
fwrite(&Tbl.str_longlen, sizeof Tbl.str_longlen, 1, outf);
|
||||||
|
fwrite(&Tbl.str_shortlen, sizeof Tbl.str_shortlen, 1, outf);
|
||||||
|
fwrite(&Tbl.str_flags, sizeof Tbl.str_flags, 1, outf);
|
||||||
|
fwrite( Tbl.stuff, sizeof Tbl.stuff, 1, outf);
|
||||||
|
if (STORING_PTRS)
|
||||||
|
{
|
||||||
|
for (p = Seekpts, cnt = Num_pts; cnt--; ++p)
|
||||||
|
{
|
||||||
|
*p = htonl(*p);
|
||||||
|
fwrite(p, sizeof *p, 1, outf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(outf);
|
||||||
|
exit(0);
|
||||||
|
}
|
2
etip/etip.conf
Normal file
2
etip/etip.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[etip]
|
||||||
|
Path = tips/ede
|
233
etip/etip.cpp
233
etip/etip.cpp
@ -1,136 +1,185 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: etip.cpp 1664 2006-06-14 00:21:44Z karijes $
|
* $Id: etip.cpp 1664 2006-06-14 00:21:44Z karijes $
|
||||||
*
|
*
|
||||||
|
* Etip, show some tips!
|
||||||
* Part of Equinox Desktop Environment (EDE).
|
* Part of Equinox Desktop Environment (EDE).
|
||||||
* Copyright (c) 2000-2006 EDE Authors.
|
* Copyright (c) 2008 EDE Authors.
|
||||||
*
|
*
|
||||||
* This program is licenced under terms of the
|
* This program is licensed under the terms of the
|
||||||
* GNU General Public Licence version 2 or newer.
|
* GNU General Public License version 2 or newer.
|
||||||
* See COPYING for details.
|
* See COPYING for the details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <fltk/Window.h>
|
#include <FL/Fl.h>
|
||||||
#include <fltk/Button.h>
|
#include <FL/Fl_Window.h>
|
||||||
#include <fltk/CheckButton.h>
|
#include <FL/Fl_Check_Button.h>
|
||||||
#include <fltk/InvisibleBox.h>
|
#include <FL/Fl_Button.h>
|
||||||
#include <fltk/xpmImage.h>
|
#include <FL/Fl_Group.h>
|
||||||
#include <fltk/run.h>
|
#include <FL/Fl_Box.h>
|
||||||
|
#include <FL/Fl_Pixmap.h>
|
||||||
|
|
||||||
|
#include <edelib/Nls.h>
|
||||||
|
#include <edelib/Config.h>
|
||||||
|
#include <edelib/File.h>
|
||||||
|
#include <edelib/StrUtil.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "icons/hint.xpm"
|
#include "icons/hint.xpm"
|
||||||
|
#include "Fortune.h"
|
||||||
|
|
||||||
// TODO: should be replaced with NLS from edelib
|
static Fl_Pixmap image_hint(hint_xpm);
|
||||||
#define _(s) s
|
|
||||||
|
|
||||||
#define TIPS_NUM 7
|
Fl_Window* win;
|
||||||
#define TITLE_TIPS_NUM 9
|
Fl_Check_Button* check_button;
|
||||||
|
Fl_Box* title_box;
|
||||||
|
Fl_Box* tip_box;
|
||||||
|
int curr_tip = 0;
|
||||||
|
|
||||||
using namespace fltk;
|
FortuneFile* ffile = 0;
|
||||||
|
edelib::String fstring;
|
||||||
|
|
||||||
unsigned int curr_tip = 0;
|
#define TITLE_TIPS_NUM 4
|
||||||
const char* tiplist[TIPS_NUM] =
|
const char* title_tips[TITLE_TIPS_NUM] = {
|
||||||
{
|
_("Did you know ?"),
|
||||||
_("To start any application is simple. Press on the button with your user name, go\
|
_("Tip of the Day"),
|
||||||
to the Programs menu, select category and click on the wished program."),
|
_("A tip..."),
|
||||||
|
_("Boring \"Did you know ?\"")
|
||||||
_("To exit the EDE, press button with your user name and then Logout."),
|
|
||||||
|
|
||||||
_("To lock the computer, press button with your user name and then choose Lock."),
|
|
||||||
|
|
||||||
_("To setup things on the computer, press button with your user name, Panel menu and then the Control panel."),
|
|
||||||
|
|
||||||
_("To add a program that is not in the Programs menu, click on the button with your user,\
|
|
||||||
Panel menu, and then Menu editor."),
|
|
||||||
|
|
||||||
_("Notice that this is still development version, so please send your bug reports or\
|
|
||||||
comments on EDE forum, EDE bug reporting system (on project's page), or check mails of current\
|
|
||||||
maintainers located in AUTHORS file."),
|
|
||||||
|
|
||||||
_("You can download latest release on http://sourceforge.net/projects/ede.")
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* title_tips[TITLE_TIPS_NUM] =
|
void preformat_tip(edelib::String& str) {
|
||||||
{
|
unsigned int sz = str.length();
|
||||||
_("Boring \"Did you know...\""),
|
unsigned int j;
|
||||||
_("How about this..."),
|
|
||||||
_("Smart idea..."),
|
|
||||||
_("Really smart idea..."),
|
|
||||||
_("Really really smart idea..."),
|
|
||||||
_("Uf..."),
|
|
||||||
_("Something new..."),
|
|
||||||
_("Or maybe this..."),
|
|
||||||
_("...")
|
|
||||||
};
|
|
||||||
|
|
||||||
const char* random_txt(const char** lst, unsigned int max)
|
for(unsigned int i = 0; i < sz; i++) {
|
||||||
{
|
if(str[i] == '\n') {
|
||||||
|
j = i;
|
||||||
|
j++;
|
||||||
|
if(j < sz && str[j] != '\n')
|
||||||
|
str[i] = ' ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* random_title(const char** lst, unsigned int max) {
|
||||||
unsigned int val = rand() % max;
|
unsigned int val = rand() % max;
|
||||||
curr_tip = val;
|
|
||||||
return lst[val];
|
return lst[val];
|
||||||
}
|
}
|
||||||
|
|
||||||
void close_cb(Widget*, void* w)
|
const char* random_fortune(void) {
|
||||||
{
|
unsigned int val = rand() % (fortune_num_items(ffile) - 1);
|
||||||
Window* win = (Window*)w;
|
curr_tip = val;
|
||||||
|
fortune_get(ffile, val, fstring);
|
||||||
|
return fstring.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
void close_cb(Fl_Widget*, void*) {
|
||||||
win->hide();
|
win->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
void next_cb(Widget*, void* tb)
|
void next_cb(Fl_Widget*, void*) {
|
||||||
{
|
if(!ffile)
|
||||||
InvisibleBox* tipbox = (InvisibleBox*)tb;
|
return;
|
||||||
|
|
||||||
curr_tip++;
|
curr_tip++;
|
||||||
if(curr_tip >= TIPS_NUM)
|
if(curr_tip >= (int)fortune_num_items(ffile))
|
||||||
curr_tip = 0;
|
curr_tip = 0;
|
||||||
tipbox->label(tiplist[curr_tip]);
|
|
||||||
tipbox->redraw_label();
|
fortune_get(ffile, curr_tip, fstring);
|
||||||
|
//preformat_tip(fstring);
|
||||||
|
tip_box->label(fstring.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void prev_cb(Widget*, void* tb)
|
void prev_cb(Fl_Widget*, void*) {
|
||||||
{
|
if(!ffile)
|
||||||
InvisibleBox* tipbox = (InvisibleBox*)tb;
|
return;
|
||||||
if(curr_tip == 0)
|
|
||||||
curr_tip = TIPS_NUM - 1;
|
curr_tip--;
|
||||||
else
|
if(curr_tip < 0) {
|
||||||
|
curr_tip = fortune_num_items(ffile);
|
||||||
curr_tip--;
|
curr_tip--;
|
||||||
tipbox->label(tiplist[curr_tip]);
|
}
|
||||||
tipbox->redraw_label();
|
|
||||||
|
fortune_get(ffile, curr_tip, fstring);
|
||||||
|
tip_box->label(fstring.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
FortuneFile* load_fortune_file(void) {
|
||||||
{
|
edelib::Config conf;
|
||||||
srand(time(NULL));
|
if(!conf.load("etip.conf"))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
Window* win = new Window(460, 200, _("Tips..."));
|
char path[1024];
|
||||||
|
if(!conf.get("etip", "Path", path, sizeof(path)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// check if file exists and at the same place we have .dat file
|
||||||
|
if(!edelib::file_exists(path))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
edelib::String dat = path;
|
||||||
|
dat += ".dat";
|
||||||
|
|
||||||
|
if(!edelib::file_exists(dat.c_str()))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return fortune_open(path, dat.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
ffile = load_fortune_file();
|
||||||
|
|
||||||
|
// initialize random number only if we loaded tips
|
||||||
|
if(ffile)
|
||||||
|
srand(time(0));
|
||||||
|
|
||||||
|
win = new Fl_Window(535, 260, _("EDE Tips"));
|
||||||
win->begin();
|
win->begin();
|
||||||
|
Fl_Group* main_group = new Fl_Group(10, 10, 515, 205);
|
||||||
|
main_group->box(FL_DOWN_BOX);
|
||||||
|
main_group->color(FL_BACKGROUND2_COLOR);
|
||||||
|
main_group->begin();
|
||||||
|
Fl_Box* image_box = new Fl_Box(11, 13, 121, 201);
|
||||||
|
image_box->image(image_hint);
|
||||||
|
|
||||||
InvisibleBox* img = new InvisibleBox(10, 10, 70, 65);
|
title_box = new Fl_Box(155, 23, 355, 25, random_title(title_tips, TITLE_TIPS_NUM));
|
||||||
xpmImage pix(hint_xpm);
|
title_box->labelfont(FL_HELVETICA_BOLD);
|
||||||
img->image(pix);
|
title_box->align(196|FL_ALIGN_INSIDE);
|
||||||
img->box(FLAT_BOX);
|
|
||||||
|
|
||||||
InvisibleBox* title = new InvisibleBox(85, 15, 365, 25, random_txt(title_tips, TITLE_TIPS_NUM));
|
tip_box = new Fl_Box(155, 60, 355, 140);
|
||||||
title->box(fltk::FLAT_BOX);
|
tip_box->align(197|FL_ALIGN_INSIDE);
|
||||||
title->labelfont(fltk::HELVETICA_BOLD);
|
|
||||||
title->align(fltk::ALIGN_LEFT|fltk::ALIGN_INSIDE);
|
|
||||||
|
|
||||||
InvisibleBox* tiptxt = new InvisibleBox(85, 45, 365, 110, random_txt(tiplist, TIPS_NUM));
|
if(!ffile)
|
||||||
tiptxt->box(fltk::FLAT_BOX);
|
tip_box->label(_("I'm unable to correctly load tip files. Please check what went wrong"));
|
||||||
tiptxt->align(fltk::ALIGN_TOP|fltk::ALIGN_LEFT|fltk::ALIGN_INSIDE|fltk::ALIGN_WRAP);
|
else
|
||||||
|
tip_box->label(random_fortune());
|
||||||
|
|
||||||
new fltk::CheckButton(10, 165, 155, 25, _("Do not bother me"));
|
main_group->end();
|
||||||
|
|
||||||
Button* prev = new Button(170, 165, 90, 25, _("@< Previous"));
|
check_button = new Fl_Check_Button(10, 224, 225, 25, _("Show tips on startup"));
|
||||||
prev->callback(prev_cb, tiptxt);
|
check_button->down_box(FL_DOWN_BOX);
|
||||||
Button* next = new Button(265, 165, 90, 25, _("Next @>"));
|
|
||||||
next->callback(next_cb, tiptxt);
|
Fl_Button* prev_button = new Fl_Button(240, 224, 90, 25, _("&Previous"));
|
||||||
|
prev_button->callback(prev_cb);
|
||||||
|
|
||||||
|
Fl_Button* next_button = new Fl_Button(335, 224, 90, 25, _("&Next"));
|
||||||
|
next_button->callback(next_cb);
|
||||||
|
|
||||||
|
Fl_Button* close_button = new Fl_Button(435, 224, 90, 25, _("&Close"));
|
||||||
|
close_button->callback(close_cb);
|
||||||
|
|
||||||
|
// check_button somehow steal focus
|
||||||
|
close_button->take_focus();
|
||||||
|
|
||||||
Button* close = new Button(360, 165, 90, 25, _("&Close"));
|
|
||||||
close->callback(close_cb, win);
|
|
||||||
win->end();
|
win->end();
|
||||||
|
win->show(argc, argv);
|
||||||
|
|
||||||
win->set_modal();
|
Fl::run();
|
||||||
win->show();
|
|
||||||
return run();
|
if(ffile)
|
||||||
|
fortune_close(ffile);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
42
etip/etip.fl
42
etip/etip.fl
@ -1,42 +0,0 @@
|
|||||||
# data file for the FLTK User Interface Designer (FLUID)
|
|
||||||
version 2.1000
|
|
||||||
header_name {.h}
|
|
||||||
code_name {.cxx}
|
|
||||||
gridx 5
|
|
||||||
gridy 5
|
|
||||||
snap 3
|
|
||||||
Function {} {open
|
|
||||||
} {
|
|
||||||
{fltk::Window} {} {open
|
|
||||||
xywh {446 296 460 200} resizable visible
|
|
||||||
} {
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
xywh {10 10 70 65} box FLAT_BOX
|
|
||||||
image {icons/hint.xpm}
|
|
||||||
}
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
label {Did you know}
|
|
||||||
xywh {85 15 365 25} align 36 box FLAT_BOX labelfont 1
|
|
||||||
}
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
label {To start any application is simple. Press on the button with your user name, go to the Programs menu, select category and click on the wished program.}
|
|
||||||
xywh {85 45 365 110} align 165 box FLAT_BOX
|
|
||||||
}
|
|
||||||
{fltk::CheckButton} {} {
|
|
||||||
label {Do not bother me}
|
|
||||||
xywh {10 165 155 25}
|
|
||||||
}
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {@< Previous}
|
|
||||||
xywh {170 165 90 25}
|
|
||||||
}
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {Next @>} selected
|
|
||||||
xywh {265 165 90 25}
|
|
||||||
}
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {&Close}
|
|
||||||
xywh {360 165 90 25}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
100
etip/etip.fld
100
etip/etip.fld
@ -1,100 +0,0 @@
|
|||||||
# data file for the FLTK User Interface Designer (FLUID)
|
|
||||||
version 2.0100
|
|
||||||
images_dir ./
|
|
||||||
header_name {.h}
|
|
||||||
code_name {.cpp}
|
|
||||||
gridx 5
|
|
||||||
gridy 5
|
|
||||||
snap 3
|
|
||||||
decl {// Tips for EDE is (C) Copyright 2001-2002 by Martin Pekar, this program is provided under the terms of GNU GPL v.2, see file COPYING for more information.} {}
|
|
||||||
|
|
||||||
decl {\#include <stdio.h>} {}
|
|
||||||
|
|
||||||
decl {\#include <stdlib.h>} {}
|
|
||||||
|
|
||||||
decl {\#include "EDE_Config.h"} {}
|
|
||||||
|
|
||||||
decl {\#include "NLS.h"} {}
|
|
||||||
|
|
||||||
decl {char *tips[5];} {}
|
|
||||||
|
|
||||||
decl {int activeTip = 0;} {}
|
|
||||||
|
|
||||||
decl {EDE_Config conf("EDE Team", "etip");} {}
|
|
||||||
|
|
||||||
Function {} {open
|
|
||||||
} {
|
|
||||||
code {//fl_init_locale_support("etip", PREFIX"/share/locale");
|
|
||||||
bool show = true;
|
|
||||||
conf.set_section("Tips");
|
|
||||||
conf.read("Show", show, true);
|
|
||||||
if (!show)
|
|
||||||
return 0;
|
|
||||||
tips[0]=_("To start any application is simple. Press on the EDE button, go to the Programs menu, select category and click on the wished program.");
|
|
||||||
tips[1]=_("To exit the Equinox Desktop environment, press EDE button and then logout.");
|
|
||||||
tips[2]=_("To lock the computer, press EDE button and then lock.");
|
|
||||||
tips[3]=_("To setup things on the computer, press EDE button, Panel menu and then the Control panel.");
|
|
||||||
tips[4]=_("To add a program that is not in the Programs menu, click on the EDE button, Panel menu, and then Edit panels menu.");} {}
|
|
||||||
{fltk::Window} {} {
|
|
||||||
label {Startup tips} open selected
|
|
||||||
xywh {394 319 400 205} resizable
|
|
||||||
extra_code {o->size_range(o->w(), o->h());} visible
|
|
||||||
} {
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
xywh {10 15 60 145} image {/home/vedran/ede/ede2/etip/icons/hint.xpm}
|
|
||||||
}
|
|
||||||
{fltk::CheckButton} show_check {
|
|
||||||
label {Do not show this dialog next time}
|
|
||||||
xywh {77 145 313 20} align 148
|
|
||||||
}
|
|
||||||
{fltk::Group} {} {open
|
|
||||||
xywh {80 15 310 125} align 209 resizable box BORDER_FRAME color 0xf4da1200 labelsize 18
|
|
||||||
} {
|
|
||||||
{fltk::InvisibleBox} tipsBox {
|
|
||||||
xywh {1 46 308 74} align 144 resizable box FLAT_BOX color 7
|
|
||||||
extra_code {o->label(tips[activeTip]);
|
|
||||||
o->window()->redraw();}
|
|
||||||
}
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
label {Welcome to Equinox Desktop Environment}
|
|
||||||
xywh {5 5 300 45} align 144 box FLAT_BOX color 0xf4da1200 labelcolor 32 labelsize 18
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{fltk::Group} {} {open
|
|
||||||
xywh {0 165 400 40}
|
|
||||||
} {
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {<< &Previous}
|
|
||||||
callback {if (activeTip>0 && activeTip<=4) {
|
|
||||||
activeTip--;
|
|
||||||
tipsBox->label(tips[activeTip]);
|
|
||||||
tipsBox->window()->redraw();
|
|
||||||
}}
|
|
||||||
xywh {125 7 90 23} align 128
|
|
||||||
}
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {&Next >>}
|
|
||||||
callback {if (activeTip>=0 && activeTip<4) {
|
|
||||||
activeTip++;
|
|
||||||
tipsBox->label(tips[activeTip]);
|
|
||||||
tipsBox->window()->redraw();
|
|
||||||
}}
|
|
||||||
xywh {215 7 90 23}
|
|
||||||
}
|
|
||||||
{fltk::InvisibleBox} {} {
|
|
||||||
xywh {0 5 157 30}
|
|
||||||
extra_code {// Fluid sucks in layouting...
|
|
||||||
o->parent()->resizable(o);}
|
|
||||||
}
|
|
||||||
{fltk::Button} {} {
|
|
||||||
label {&Close}
|
|
||||||
callback {//Fl_Config conf(fl_find_config_file("apps/etip.conf", 1));
|
|
||||||
conf.set_section("Tips");
|
|
||||||
conf.write("Show", !show_check->value());
|
|
||||||
conf.flush();
|
|
||||||
exit(0);}
|
|
||||||
xywh {320 7 70 23}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
43
etip/fl/etip.fl
Normal file
43
etip/fl/etip.fl
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# data file for the Fltk User Interface Designer (fluid)
|
||||||
|
version 1.0108
|
||||||
|
header_name {.h}
|
||||||
|
code_name {.cxx}
|
||||||
|
Function {} {open
|
||||||
|
} {
|
||||||
|
Fl_Window {} {
|
||||||
|
label {EDE Tips And Tricks} open
|
||||||
|
xywh {299 206 535 260} type Double visible
|
||||||
|
} {
|
||||||
|
Fl_Check_Button {} {
|
||||||
|
label {Show tips on startup} selected
|
||||||
|
xywh {10 224 225 25} down_box DOWN_BOX labelsize 13
|
||||||
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {&Previous}
|
||||||
|
xywh {240 224 90 25}
|
||||||
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {&Next}
|
||||||
|
xywh {335 224 90 25}
|
||||||
|
}
|
||||||
|
Fl_Button {} {
|
||||||
|
label {&Close}
|
||||||
|
xywh {435 224 90 25}
|
||||||
|
}
|
||||||
|
Fl_Group {} {open
|
||||||
|
xywh {10 10 515 205} box DOWN_BOX color 7
|
||||||
|
} {
|
||||||
|
Fl_Box {} {
|
||||||
|
image {../icons/hint.xpm} xywh {11 13 121 201} labelsize 14
|
||||||
|
}
|
||||||
|
Fl_Box {} {
|
||||||
|
label {Some tips...}
|
||||||
|
xywh {155 23 355 25} labelfont 1 align 212
|
||||||
|
}
|
||||||
|
Fl_Box {} {
|
||||||
|
label {If you cannot access the titlebar, you can still move a window on the screen by holding the Alt key, clicking anywhere into the window and "dragging" it with the mouse.}
|
||||||
|
xywh {155 60 355 140} align 213
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1190
etip/icons/hint.xpm
1190
etip/icons/hint.xpm
File diff suppressed because it is too large
Load Diff
@ -1,93 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: emenueditor\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2005-02-04 11:58+0100\n"
|
|
||||||
"PO-Revision-Date: 2002-11-29 15:50+0700\n"
|
|
||||||
"Last-Translator: Bambang Purnomosidi D. P. <i-am-the-boss@bpdp.org>\n"
|
|
||||||
"Language-Team: id <i-am-the-boss@bpdp.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=iso-8859-2\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: etip.cpp:809
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To start any application is simple. Press on the button with your user name, "
|
|
||||||
"go to the Programs menu, select category and click on the wished program."
|
|
||||||
msgstr ""
|
|
||||||
"Untuk memulai suatu aplikasi, caranya sederhana. Tekan tombol EDE, gerakkan "
|
|
||||||
"ke menu Programs, pilih kategori dan klik pada program yang diinginkan."
|
|
||||||
|
|
||||||
#: etip.cpp:810
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To exit the Equinox Desktop environment, press button with your user name "
|
|
||||||
"and then logout."
|
|
||||||
msgstr ""
|
|
||||||
"Untuk keluar dari Equinox Desktop Environment, tekan tombol EDE dan kemudian "
|
|
||||||
"logout."
|
|
||||||
|
|
||||||
#: etip.cpp:811
|
|
||||||
#, fuzzy
|
|
||||||
msgid "To lock the computer, press button with your user name and then lock."
|
|
||||||
msgstr "Untuk mengunci komputer, tekan tombol EDE dan kemudian lock."
|
|
||||||
|
|
||||||
#: etip.cpp:812
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To setup things on the computer, press button with your user name, Panel "
|
|
||||||
"menu and then the Control panel."
|
|
||||||
msgstr ""
|
|
||||||
"Untuk mensetup hal-hal tertentu di komputer anda, tekan tombol EDE, menu "
|
|
||||||
"Panel dan kemudian Control panel."
|
|
||||||
|
|
||||||
#: etip.cpp:813
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To add a program that is not in the Programs menu, click on the button with "
|
|
||||||
"your user, Panel menu, and then Edit panels menu."
|
|
||||||
msgstr ""
|
|
||||||
"Untuk menambahkan suatu program yang tidak berada di menu Programs, klik "
|
|
||||||
"pada tombol EDE, menu Panel, dan kemudian menu Edit panel/"
|
|
||||||
|
|
||||||
#: etip.cpp:814
|
|
||||||
msgid ""
|
|
||||||
"Notice that this is still development version, so please send your bug "
|
|
||||||
"reports or comments on EDE forum, EDE bug reporting system (on project's "
|
|
||||||
"page), or karijes@users.sourceforge.net."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:815
|
|
||||||
msgid ""
|
|
||||||
"You can download latest release on - http://sourceforge.net/projects/ede."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:820
|
|
||||||
msgid "Startup tips"
|
|
||||||
msgstr "Tips startup"
|
|
||||||
|
|
||||||
#: etip.cpp:825
|
|
||||||
msgid "Do not show this dialog next time"
|
|
||||||
msgstr "Jangan perlihatkan dialog ini lain kali"
|
|
||||||
|
|
||||||
#: etip.cpp:840
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Welcome to Equinox Desktop Environment version "
|
|
||||||
msgstr "Selamat datang di Equinox Desktop Environment"
|
|
||||||
|
|
||||||
#: etip.cpp:850
|
|
||||||
msgid "<< &Previous"
|
|
||||||
msgstr "<< &Sebelum"
|
|
||||||
|
|
||||||
#: etip.cpp:854
|
|
||||||
msgid "&Next >>"
|
|
||||||
msgstr "&Berikut >>"
|
|
||||||
|
|
||||||
#: etip.cpp:859
|
|
||||||
msgid "&Close"
|
|
||||||
msgstr "&Tutup"
|
|
@ -1,81 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2005-02-04 11:58+0100\n"
|
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: etip.cpp:809
|
|
||||||
msgid ""
|
|
||||||
"To start any application is simple. Press on the button with your user name, "
|
|
||||||
"go to the Programs menu, select category and click on the wished program."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:810
|
|
||||||
msgid ""
|
|
||||||
"To exit the Equinox Desktop environment, press button with your user name "
|
|
||||||
"and then logout."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:811
|
|
||||||
msgid "To lock the computer, press button with your user name and then lock."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:812
|
|
||||||
msgid ""
|
|
||||||
"To setup things on the computer, press button with your user name, Panel "
|
|
||||||
"menu and then the Control panel."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:813
|
|
||||||
msgid ""
|
|
||||||
"To add a program that is not in the Programs menu, click on the button with "
|
|
||||||
"your user, Panel menu, and then Edit panels menu."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:814
|
|
||||||
msgid ""
|
|
||||||
"Notice that this is still development version, so please send your bug "
|
|
||||||
"reports or comments on EDE forum, EDE bug reporting system (on project's "
|
|
||||||
"page), or karijes@users.sourceforge.net."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:815
|
|
||||||
msgid ""
|
|
||||||
"You can download latest release on - http://sourceforge.net/projects/ede."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:820
|
|
||||||
msgid "Startup tips"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:825
|
|
||||||
msgid "Do not show this dialog next time"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:840
|
|
||||||
msgid "Welcome to Equinox Desktop Environment version "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:850
|
|
||||||
msgid "<< &Previous"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:854
|
|
||||||
msgid "&Next >>"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:859
|
|
||||||
msgid "&Close"
|
|
||||||
msgstr ""
|
|
@ -1,93 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2005-02-04 11:58+0100\n"
|
|
||||||
"PO-Revision-Date: 2002-11-28 HO:MI+ZONE\n"
|
|
||||||
"Last-Translator: aabbvv <null@list.ru>\n"
|
|
||||||
"Language-Team: RUSSIAN <LL@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=koi8-r\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: etip.cpp:809
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To start any application is simple. Press on the button with your user name, "
|
|
||||||
"go to the Programs menu, select category and click on the wished program."
|
|
||||||
msgstr ""
|
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EDE, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "
|
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> ݣ<><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
|
||||||
|
|
||||||
#: etip.cpp:810
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To exit the Equinox Desktop environment, press button with your user name "
|
|
||||||
"and then logout."
|
|
||||||
msgstr "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> EDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EDE, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>."
|
|
||||||
|
|
||||||
#: etip.cpp:811
|
|
||||||
#, fuzzy
|
|
||||||
msgid "To lock the computer, press button with your user name and then lock."
|
|
||||||
msgstr ""
|
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EDE <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>."
|
|
||||||
|
|
||||||
#: etip.cpp:812
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To setup things on the computer, press button with your user name, Panel "
|
|
||||||
"menu and then the Control panel."
|
|
||||||
msgstr ""
|
|
||||||
"<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EDE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> \"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
||||||
"\" <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
|
||||||
|
|
||||||
#: etip.cpp:813
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To add a program that is not in the Programs menu, click on the button with "
|
|
||||||
"your user, Panel menu, and then Edit panels menu."
|
|
||||||
msgstr ""
|
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> EDE, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,"
|
|
||||||
"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
|
|
||||||
|
|
||||||
#: etip.cpp:814
|
|
||||||
msgid ""
|
|
||||||
"Notice that this is still development version, so please send your bug "
|
|
||||||
"reports or comments on EDE forum, EDE bug reporting system (on project's "
|
|
||||||
"page), or karijes@users.sourceforge.net."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:815
|
|
||||||
msgid ""
|
|
||||||
"You can download latest release on - http://sourceforge.net/projects/ede."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:820
|
|
||||||
msgid "Startup tips"
|
|
||||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
||||||
|
|
||||||
#: etip.cpp:825
|
|
||||||
msgid "Do not show this dialog next time"
|
|
||||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
||||||
|
|
||||||
#: etip.cpp:840
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Welcome to Equinox Desktop Environment version "
|
|
||||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Equinox Desktop Environment"
|
|
||||||
|
|
||||||
#: etip.cpp:850
|
|
||||||
msgid "<< &Previous"
|
|
||||||
msgstr "<< <20><><EFBFBD><EFBFBD><EFBFBD>"
|
|
||||||
|
|
||||||
#: etip.cpp:854
|
|
||||||
msgid "&Next >>"
|
|
||||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD> >>"
|
|
||||||
|
|
||||||
#: etip.cpp:859
|
|
||||||
msgid "&Close"
|
|
||||||
msgstr "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
|
@ -1,94 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: etip 1.0\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2005-02-04 11:58+0100\n"
|
|
||||||
"PO-Revision-Date: 2002-04-21 14:50+0200\n"
|
|
||||||
"Last-Translator: Martin Pekar <cortex@nextra.sk>\n"
|
|
||||||
"Language-Team: Slovak <LL@li.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: etip.cpp:809
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To start any application is simple. Press on the button with your user name, "
|
|
||||||
"go to the Programs menu, select category and click on the wished program."
|
|
||||||
msgstr ""
|
|
||||||
"Spustiť aplikáciu je jednoduché. Stlačte EDE tlačidlo, chodte do ponuky "
|
|
||||||
"Programy, zvoľte kategóriu a kliknite na želaný program."
|
|
||||||
|
|
||||||
#: etip.cpp:810
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To exit the Equinox Desktop environment, press button with your user name "
|
|
||||||
"and then logout."
|
|
||||||
msgstr ""
|
|
||||||
"Ak chcete ukončiť prostredie Equinox Desktop environment, stlačte tlačidlo "
|
|
||||||
"EDE a potom odhlásenie."
|
|
||||||
|
|
||||||
#: etip.cpp:811
|
|
||||||
#, fuzzy
|
|
||||||
msgid "To lock the computer, press button with your user name and then lock."
|
|
||||||
msgstr ""
|
|
||||||
"Na zamknutie počitača, stlačte EDE tlačidlo a potom zablokovať obrazovku."
|
|
||||||
|
|
||||||
#: etip.cpp:812
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To setup things on the computer, press button with your user name, Panel "
|
|
||||||
"menu and then the Control panel."
|
|
||||||
msgstr ""
|
|
||||||
"Na nastavenie vecí na počítači, stlačte EDE tlačidlo, ponuku Panel a potom "
|
|
||||||
"Kontrólny panel."
|
|
||||||
|
|
||||||
#: etip.cpp:813
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To add a program that is not in the Programs menu, click on the button with "
|
|
||||||
"your user, Panel menu, and then Edit panels menu."
|
|
||||||
msgstr ""
|
|
||||||
"Na pridanie programu, ktorý nie je ponuke Programy, kliknite na EDE "
|
|
||||||
"tlačidlo, ponuku Panel a potom Editovať ponuku panelu."
|
|
||||||
|
|
||||||
#: etip.cpp:814
|
|
||||||
msgid ""
|
|
||||||
"Notice that this is still development version, so please send your bug "
|
|
||||||
"reports or comments on EDE forum, EDE bug reporting system (on project's "
|
|
||||||
"page), or karijes@users.sourceforge.net."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:815
|
|
||||||
msgid ""
|
|
||||||
"You can download latest release on - http://sourceforge.net/projects/ede."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:820
|
|
||||||
msgid "Startup tips"
|
|
||||||
msgstr "Úvodné typy"
|
|
||||||
|
|
||||||
#: etip.cpp:825
|
|
||||||
msgid "Do not show this dialog next time"
|
|
||||||
msgstr "Nabudúce už tento dialóg nezobrazovať"
|
|
||||||
|
|
||||||
#: etip.cpp:840
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Welcome to Equinox Desktop Environment version "
|
|
||||||
msgstr "Vitajte v prostredí Equinox Desktop Environment"
|
|
||||||
|
|
||||||
#: etip.cpp:850
|
|
||||||
msgid "<< &Previous"
|
|
||||||
msgstr "<< &Späť"
|
|
||||||
|
|
||||||
#: etip.cpp:854
|
|
||||||
msgid "&Next >>"
|
|
||||||
msgstr "&Ďalej >>"
|
|
||||||
|
|
||||||
#: etip.cpp:859
|
|
||||||
msgid "&Close"
|
|
||||||
msgstr "&Zavrieť"
|
|
@ -1,95 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR Free Software Foundation, Inc.
|
|
||||||
# Dejan Lekic <dejan@nu6.org>, 2002.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: etip 1.0\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2005-02-04 11:58+0100\n"
|
|
||||||
"PO-Revision-Date: 2002-12-02 04:19+0100\n"
|
|
||||||
"Last-Translator: Dejan Lekic <dejan@nu6.org>\n"
|
|
||||||
"Language-Team: LINUKS.org T.T. <i18n@linuks.org>\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
|
|
||||||
#: etip.cpp:809
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To start any application is simple. Press on the button with your user name, "
|
|
||||||
"go to the Programs menu, select category and click on the wished program."
|
|
||||||
msgstr ""
|
|
||||||
"Стартовање апликације је веома просто. Притисните ЕДЕ тастер \"Програми\", "
|
|
||||||
"селектујте категорију и кликните на жељени програм."
|
|
||||||
|
|
||||||
#: etip.cpp:810
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To exit the Equinox Desktop environment, press button with your user name "
|
|
||||||
"and then logout."
|
|
||||||
msgstr ""
|
|
||||||
"Да бисте изашли из ЕДЕ-а притисните ЕДЕ тастер и након тога кликните на "
|
|
||||||
"\"Излогуј ме\"."
|
|
||||||
|
|
||||||
#: etip.cpp:811
|
|
||||||
#, fuzzy
|
|
||||||
msgid "To lock the computer, press button with your user name and then lock."
|
|
||||||
msgstr ""
|
|
||||||
"Да бисте закључали рачунар притисните ЕДЕ тастер и након тога кликните на "
|
|
||||||
"\"закључај\"."
|
|
||||||
|
|
||||||
#: etip.cpp:812
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To setup things on the computer, press button with your user name, Panel "
|
|
||||||
"menu and then the Control panel."
|
|
||||||
msgstr ""
|
|
||||||
"Да бисте подесили разне ствари на вашем рачунару притисните ЕДЕ тастер, "
|
|
||||||
"након тога изаберите \"Панел\" мени и кликните на \"Контролни панел\" опцију."
|
|
||||||
|
|
||||||
#: etip.cpp:813
|
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
|
||||||
"To add a program that is not in the Programs menu, click on the button with "
|
|
||||||
"your user, Panel menu, and then Edit panels menu."
|
|
||||||
msgstr ""
|
|
||||||
"Да бисте додали програм који није у менију \"Програми\" кликните на ЕДЕ "
|
|
||||||
"тастер, \"Панел\" мени и онда на \"Едитовање панела\" опцију."
|
|
||||||
|
|
||||||
#: etip.cpp:814
|
|
||||||
msgid ""
|
|
||||||
"Notice that this is still development version, so please send your bug "
|
|
||||||
"reports or comments on EDE forum, EDE bug reporting system (on project's "
|
|
||||||
"page), or karijes@users.sourceforge.net."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:815
|
|
||||||
msgid ""
|
|
||||||
"You can download latest release on - http://sourceforge.net/projects/ede."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: etip.cpp:820
|
|
||||||
msgid "Startup tips"
|
|
||||||
msgstr "Стартап савети"
|
|
||||||
|
|
||||||
#: etip.cpp:825
|
|
||||||
msgid "Do not show this dialog next time"
|
|
||||||
msgstr "Не желим приказивање овог дијалога у будуће"
|
|
||||||
|
|
||||||
#: etip.cpp:840
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Welcome to Equinox Desktop Environment version "
|
|
||||||
msgstr "Добродошли у Иквинокс Десктоп Окружење :)"
|
|
||||||
|
|
||||||
#: etip.cpp:850
|
|
||||||
msgid "<< &Previous"
|
|
||||||
msgstr "<< &Претходни"
|
|
||||||
|
|
||||||
#: etip.cpp:854
|
|
||||||
msgid "&Next >>"
|
|
||||||
msgstr "&Следећи >>"
|
|
||||||
|
|
||||||
#: etip.cpp:859
|
|
||||||
msgid "&Close"
|
|
||||||
msgstr "&Затвори"
|
|
26
etip/tips/ede
Normal file
26
etip/tips/ede
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
To start any application is simple. Press on the button with your user
|
||||||
|
name, go to the Programs menu, select category and click on the wished program.
|
||||||
|
%
|
||||||
|
To exit the EDE, press button with your user name and then Logout.
|
||||||
|
%
|
||||||
|
To lock the computer, press button with your user name and then choose Lock.
|
||||||
|
%
|
||||||
|
To setup things on the computer, press button with your user name, Panel menu
|
||||||
|
and then the Control panel.
|
||||||
|
%
|
||||||
|
To add a program that is not in the Programs menu, click on the button with
|
||||||
|
your user name, Panel menu, and then Menu editor.
|
||||||
|
%
|
||||||
|
Notice that this is still development version, so please send your bug reports
|
||||||
|
or comments on EDE forum, EDE bug reporting system (on project page), or check mails of
|
||||||
|
current maintainers located in AUTHORS file.
|
||||||
|
%
|
||||||
|
You can download latest release on http://equinox-project.org.
|
||||||
|
|
||||||
|
bla bla
|
||||||
|
%
|
||||||
|
If you are interested to help us, don't hesitate to write or visit our page.
|
||||||
|
You don't have to be a coding guru nor have expirience in GUI programming. If you don't have any
|
||||||
|
expirience in programming, there are always things you can do for us, like writing
|
||||||
|
or checking documentation, spreading a words or at the best, testing EDE to the limits.
|
||||||
|
%
|
Reference in New Issue
Block a user