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:
Sanel Zukan 2008-01-14 12:02:43 +00:00
parent 3326269e36
commit 2dcdc52e6a
24 changed files with 1972 additions and 1517 deletions

15
Jamfile
View File

@ -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 ;

View File

@ -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
View 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
View 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
View 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
View 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
View 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
View 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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

8
etip/doc/etip.txt Normal file
View 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
View 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
View File

@ -0,0 +1,2 @@
[etip]
Path = tips/ede

View File

@ -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;
}

View File

@ -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}
}
}
}

View File

@ -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
View 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
}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -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"

View File

@ -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 ""

View File

@ -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 "úÁËÒÙÔØ"

View File

@ -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ť"

View File

@ -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
View 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.
%