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:
parent
3326269e36
commit
2dcdc52e6a
15
Jamfile
15
Jamfile
@ -14,15 +14,16 @@ EdeManual HACKING.txt ;
|
||||
Clean distclean : $(JCACHEFILE) $(HCACHEFILE) ;
|
||||
|
||||
# SubInclude goes after local rules
|
||||
SubInclude TOP econtrol ;
|
||||
SubInclude TOP eabout ;
|
||||
SubInclude TOP ecalc ;
|
||||
SubInclude TOP econtrol ;
|
||||
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 edewm ;
|
||||
SubInclude TOP efiler ;
|
||||
SubInclude TOP eiconman ;
|
||||
SubInclude TOP eimage ;
|
||||
SubInclude TOP etimedate ;
|
||||
SubInclude TOP evoke ;
|
||||
SubInclude TOP docs ;
|
||||
SubInclude TOP datas ;
|
||||
|
@ -136,3 +136,19 @@ rule FltkProgramBare
|
||||
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 ;
|
||||
|
||||
MakeProgram etip : etip.cpp ;
|
||||
ExtractStrings locale : etip.cpp ;
|
||||
SOURCE = Fortune.cpp 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 $
|
||||
*
|
||||
* Etip, show some tips!
|
||||
* 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
|
||||
* GNU General Public Licence version 2 or newer.
|
||||
* See COPYING for details.
|
||||
* This program is licensed under the terms of the
|
||||
* GNU General Public License version 2 or newer.
|
||||
* See COPYING for the details.
|
||||
*/
|
||||
|
||||
#include <fltk/Window.h>
|
||||
#include <fltk/Button.h>
|
||||
#include <fltk/CheckButton.h>
|
||||
#include <fltk/InvisibleBox.h>
|
||||
#include <fltk/xpmImage.h>
|
||||
#include <fltk/run.h>
|
||||
#include <FL/Fl.h>
|
||||
#include <FL/Fl_Window.h>
|
||||
#include <FL/Fl_Check_Button.h>
|
||||
#include <FL/Fl_Button.h>
|
||||
#include <FL/Fl_Group.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 <time.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "icons/hint.xpm"
|
||||
#include "Fortune.h"
|
||||
|
||||
// TODO: should be replaced with NLS from edelib
|
||||
#define _(s) s
|
||||
static Fl_Pixmap image_hint(hint_xpm);
|
||||
|
||||
#define TIPS_NUM 7
|
||||
#define TITLE_TIPS_NUM 9
|
||||
Fl_Window* win;
|
||||
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;
|
||||
const char* tiplist[TIPS_NUM] =
|
||||
{
|
||||
_("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,\
|
||||
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.")
|
||||
#define TITLE_TIPS_NUM 4
|
||||
const char* title_tips[TITLE_TIPS_NUM] = {
|
||||
_("Did you know ?"),
|
||||
_("Tip of the Day"),
|
||||
_("A tip..."),
|
||||
_("Boring \"Did you know ?\"")
|
||||
};
|
||||
|
||||
const char* title_tips[TITLE_TIPS_NUM] =
|
||||
{
|
||||
_("Boring \"Did you know...\""),
|
||||
_("How about this..."),
|
||||
_("Smart idea..."),
|
||||
_("Really smart idea..."),
|
||||
_("Really really smart idea..."),
|
||||
_("Uf..."),
|
||||
_("Something new..."),
|
||||
_("Or maybe this..."),
|
||||
_("...")
|
||||
};
|
||||
void preformat_tip(edelib::String& str) {
|
||||
unsigned int sz = str.length();
|
||||
unsigned int j;
|
||||
|
||||
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;
|
||||
curr_tip = val;
|
||||
return lst[val];
|
||||
}
|
||||
|
||||
void close_cb(Widget*, void* w)
|
||||
{
|
||||
Window* win = (Window*)w;
|
||||
const char* random_fortune(void) {
|
||||
unsigned int val = rand() % (fortune_num_items(ffile) - 1);
|
||||
curr_tip = val;
|
||||
fortune_get(ffile, val, fstring);
|
||||
return fstring.c_str();
|
||||
}
|
||||
|
||||
void close_cb(Fl_Widget*, void*) {
|
||||
win->hide();
|
||||
}
|
||||
|
||||
void next_cb(Widget*, void* tb)
|
||||
{
|
||||
InvisibleBox* tipbox = (InvisibleBox*)tb;
|
||||
void next_cb(Fl_Widget*, void*) {
|
||||
if(!ffile)
|
||||
return;
|
||||
|
||||
curr_tip++;
|
||||
if(curr_tip >= TIPS_NUM)
|
||||
if(curr_tip >= (int)fortune_num_items(ffile))
|
||||
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)
|
||||
{
|
||||
InvisibleBox* tipbox = (InvisibleBox*)tb;
|
||||
if(curr_tip == 0)
|
||||
curr_tip = TIPS_NUM - 1;
|
||||
else
|
||||
void prev_cb(Fl_Widget*, void*) {
|
||||
if(!ffile)
|
||||
return;
|
||||
|
||||
curr_tip--;
|
||||
if(curr_tip < 0) {
|
||||
curr_tip = fortune_num_items(ffile);
|
||||
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)
|
||||
{
|
||||
srand(time(NULL));
|
||||
FortuneFile* load_fortune_file(void) {
|
||||
edelib::Config conf;
|
||||
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();
|
||||
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);
|
||||
xpmImage pix(hint_xpm);
|
||||
img->image(pix);
|
||||
img->box(FLAT_BOX);
|
||||
title_box = new Fl_Box(155, 23, 355, 25, random_title(title_tips, TITLE_TIPS_NUM));
|
||||
title_box->labelfont(FL_HELVETICA_BOLD);
|
||||
title_box->align(196|FL_ALIGN_INSIDE);
|
||||
|
||||
InvisibleBox* title = new InvisibleBox(85, 15, 365, 25, random_txt(title_tips, TITLE_TIPS_NUM));
|
||||
title->box(fltk::FLAT_BOX);
|
||||
title->labelfont(fltk::HELVETICA_BOLD);
|
||||
title->align(fltk::ALIGN_LEFT|fltk::ALIGN_INSIDE);
|
||||
tip_box = new Fl_Box(155, 60, 355, 140);
|
||||
tip_box->align(197|FL_ALIGN_INSIDE);
|
||||
|
||||
InvisibleBox* tiptxt = new InvisibleBox(85, 45, 365, 110, random_txt(tiplist, TIPS_NUM));
|
||||
tiptxt->box(fltk::FLAT_BOX);
|
||||
tiptxt->align(fltk::ALIGN_TOP|fltk::ALIGN_LEFT|fltk::ALIGN_INSIDE|fltk::ALIGN_WRAP);
|
||||
if(!ffile)
|
||||
tip_box->label(_("I'm unable to correctly load tip files. Please check what went wrong"));
|
||||
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"));
|
||||
prev->callback(prev_cb, tiptxt);
|
||||
Button* next = new Button(265, 165, 90, 25, _("Next @>"));
|
||||
next->callback(next_cb, tiptxt);
|
||||
check_button = new Fl_Check_Button(10, 224, 225, 25, _("Show tips on startup"));
|
||||
check_button->down_box(FL_DOWN_BOX);
|
||||
|
||||
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->show(argc, argv);
|
||||
|
||||
win->set_modal();
|
||||
win->show();
|
||||
return run();
|
||||
Fl::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 ""
|
||||
"úÁÐÕÓÔÉÔØ ÐÒÉÌÏÖÅÎÉÅ ÏÞÅÎØ ÐÒÏÓÔÏ, ÎÁÖÍÉÔÅ ËÎÏÐËÕ EDE, ×ÙÂÅÒÉÔÅ ÐÕÎËÔ "
|
||||
"ðÒÏÇÒÁÍÍÙ, ×ÙÂÅÒÉÔÅ ËÁÔÅÇÏÒÉÀ É Ý£ÌËÎÉÔÅ ÍÙÛØÀ ÎÁ ×ÙÂÒÁÎÎÏÊ ÐÒÏÇÒÁÍÍÅ."
|
||||
|
||||
#: etip.cpp:810
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"To exit the Equinox Desktop environment, press button with your user name "
|
||||
"and then logout."
|
||||
msgstr "äÌÑ ×ÙÈÏÄÁ ÉÚ EDE ÎÁÖÍÉÔÅ ËÎÏÐËÕ EDE, ÚÁÔÅÍ ×ÙÂÅÒÉÔÅ ÐÕÎËÔ ×ÙÊÔÉ."
|
||||
|
||||
#: etip.cpp:811
|
||||
#, fuzzy
|
||||
msgid "To lock the computer, press button with your user name and then lock."
|
||||
msgstr ""
|
||||
"þÔÏÂÙ ÚÁÐÅÒÅÔØ ÜËÒÁÎ, ÎÁÖÍÉÔÅ ËÎÏÐËÕ EDE É ×ÙÂÅÒÉÔÅ ÐÕÎËÔ ÚÁÐÅÒÅÔØ ÜËÒÁÎ."
|
||||
|
||||
#: 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 ""
|
||||
"äÌÑ ËÁËÉÈ-ÌÉÂÏ ÎÁÓÔÒÏÅË ËÏÍÐØÀÔÅÒÁ ÎÁÖÍÉÔÅ ËÎÏÐËÕ EDE ×ÏÊÄÉÔÅ × ÍÅÎÀ \"ðÁÎÅÌØ"
|
||||
"\" É ×ÙÂÅÒÉÔÅ ÐÕÎËÔ ÐÁÎÅÌØ ÕÐÒÁ×ÌÅÎÉÑ."
|
||||
|
||||
#: 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 ""
|
||||
"þÔÏÂÙ ÄÏÂÁ×ÉÔØ ÐÒÏÇÒÁÍÍÕ × ÍÅÎÀ ÎÁÖÍÉÔÅ ËÎÏÐËÕ EDE, ×ÙÂÅÒÉÔÅ ÐÏÄÍÅÎÀ ÐÁÎÅÌØ,"
|
||||
"×ÙÂÅÒÉÔÅ ÐÕÎËÔ ÒÅÄÁËÔÉÒÏ×ÁÔØ ÍÅÎÀ, ÚÁÔÅÍ ÄÏÂÁ×ØÔÅ ÖÅÌÁÅÍÙÅ ÐÒÏÇÒÁÍÍÙ."
|
||||
|
||||
#: 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 "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × Equinox Desktop Environment"
|
||||
|
||||
#: etip.cpp:850
|
||||
msgid "<< &Previous"
|
||||
msgstr "<< îÁÚÁÄ"
|
||||
|
||||
#: etip.cpp:854
|
||||
msgid "&Next >>"
|
||||
msgstr "äÁÌÅÅ >>"
|
||||
|
||||
#: etip.cpp:859
|
||||
msgid "&Close"
|
||||
msgstr "úÁËÒÙÔØ"
|
@ -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.
|
||||
%
|
Loading…
Reference in New Issue
Block a user