From e3fac0cca0babdd15dbf97771352e3cf9f25c9f0 Mon Sep 17 00:00:00 2001 From: Joe1962 Date: Thu, 26 Jul 2007 00:35:35 +0000 Subject: [PATCH] Initial import at version 0.0.166 --- .directory | 2 + .icon.png | Bin 0 -> 5055 bytes .lang/#project.pot | 20 ++ .lang/.pot | 485 +++++++++++++++++++++++++++ .lang/Functions.pot | 16 + .lang/Global.pot | 16 + .lang/InputBox.pot | 28 ++ .lang/Main.pot | 16 + .lang/Utils.pot | 16 + .lang/cDiskInfo.pot | 16 + .lang/cPartInfo.pot | 16 + .lang/cPartInstall.pot | 16 + .lang/en.mo | Bin 0 -> 14610 bytes .lang/en.po | 705 +++++++++++++++++++++++++++++++++++++++ .lang/en_US.po | 483 +++++++++++++++++++++++++++ .lang/es.mo | Bin 0 -> 2795 bytes .lang/es.po | 552 ++++++++++++++++++++++++++++++ .lang/frmChoice.pot | 40 +++ .lang/frmConfig.pot | 56 ++++ .lang/frmDriveSelect.pot | 32 ++ .lang/frmGO.pot | 20 ++ .lang/frmMain.pot | 48 +++ .lang/frmPackages.pot | 48 +++ .lang/frmPartSelect.pot | 100 ++++++ .lang/frmPartitioner.pot | 16 + .lang/frmPartitions.pot | 60 ++++ .lang/frmTools.pot | 60 ++++ .lang/frmWelcome.pot | 28 ++ .project | 10 + .settings | 16 + Functions.module | 217 ++++++++++++ Global.class | 64 ++++ InputBox.class | 178 ++++++++++ InputBox.form | 36 ++ Main.module | 71 ++++ Utils.module | 187 +++++++++++ VL-logo-shine.png | Bin 0 -> 55154 bytes VL.png | Bin 0 -> 22719 bytes cDiskInfo.class | 5 + cPartInfo.class | 11 + cPartInstall.class | 6 + frmChoice.class | 55 +++ frmChoice.form | 73 ++++ frmConfig.class | 73 ++++ frmConfig.form | 109 ++++++ frmDriveSelect.class | 86 +++++ frmDriveSelect.form | 43 +++ frmGO.class | 27 ++ frmGO.form | 61 ++++ frmMain.class | 159 +++++++++ frmMain.form | 118 +++++++ frmPackages.class | 61 ++++ frmPackages.form | 85 +++++ frmPartSelect.class | 223 +++++++++++++ frmPartSelect.form | 135 ++++++++ frmPartitioner.class | 28 ++ frmPartitioner.form | 17 + frmPartitions.class | 176 ++++++++++ frmPartitions.form | 115 +++++++ frmTools.class | 72 ++++ frmTools.form | 114 +++++++ frmWelcome.class | 41 +++ frmWelcome.form | 64 ++++ installer3.png | Bin 0 -> 29979 bytes slogan.png | Bin 0 -> 8541 bytes vl-gui-installer.gambas | Bin 0 -> 204554 bytes vl_logo_icon2.png | Bin 0 -> 2122 bytes 67 files changed, 5631 insertions(+) create mode 100644 .directory create mode 100644 .icon.png create mode 100644 .lang/#project.pot create mode 100644 .lang/.pot create mode 100644 .lang/Functions.pot create mode 100644 .lang/Global.pot create mode 100644 .lang/InputBox.pot create mode 100644 .lang/Main.pot create mode 100644 .lang/Utils.pot create mode 100644 .lang/cDiskInfo.pot create mode 100644 .lang/cPartInfo.pot create mode 100644 .lang/cPartInstall.pot create mode 100644 .lang/en.mo create mode 100644 .lang/en.po create mode 100644 .lang/en_US.po create mode 100644 .lang/es.mo create mode 100644 .lang/es.po create mode 100644 .lang/frmChoice.pot create mode 100644 .lang/frmConfig.pot create mode 100644 .lang/frmDriveSelect.pot create mode 100644 .lang/frmGO.pot create mode 100644 .lang/frmMain.pot create mode 100644 .lang/frmPackages.pot create mode 100644 .lang/frmPartSelect.pot create mode 100644 .lang/frmPartitioner.pot create mode 100644 .lang/frmPartitions.pot create mode 100644 .lang/frmTools.pot create mode 100644 .lang/frmWelcome.pot create mode 100644 .project create mode 100644 .settings create mode 100644 Functions.module create mode 100644 Global.class create mode 100644 InputBox.class create mode 100644 InputBox.form create mode 100644 Main.module create mode 100644 Utils.module create mode 100644 VL-logo-shine.png create mode 100644 VL.png create mode 100644 cDiskInfo.class create mode 100644 cPartInfo.class create mode 100644 cPartInstall.class create mode 100644 frmChoice.class create mode 100644 frmChoice.form create mode 100644 frmConfig.class create mode 100644 frmConfig.form create mode 100644 frmDriveSelect.class create mode 100644 frmDriveSelect.form create mode 100644 frmGO.class create mode 100644 frmGO.form create mode 100644 frmMain.class create mode 100644 frmMain.form create mode 100644 frmPackages.class create mode 100644 frmPackages.form create mode 100644 frmPartSelect.class create mode 100644 frmPartSelect.form create mode 100644 frmPartitioner.class create mode 100644 frmPartitioner.form create mode 100644 frmPartitions.class create mode 100644 frmPartitions.form create mode 100644 frmTools.class create mode 100644 frmTools.form create mode 100644 frmWelcome.class create mode 100644 frmWelcome.form create mode 100644 installer3.png create mode 100644 slogan.png create mode 100755 vl-gui-installer.gambas create mode 100644 vl_logo_icon2.png diff --git a/.directory b/.directory new file mode 100644 index 0000000..06dab1c --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=./.icon.png diff --git a/.icon.png b/.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c83b15820928a4f57ed1d394bb07fe6eb7186dd0 GIT binary patch literal 5055 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, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .project:1 +msgid "VL-gui-installer" +msgstr "" + diff --git a/.lang/.pot b/.lang/.pot new file mode 100644 index 0000000..52ff7d8 --- /dev/null +++ b/.lang/.pot @@ -0,0 +1,485 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .project:1 +msgid "VL-gui-installer" +msgstr "" + +#: InputBox.class:199 +msgid "Enter a value:" +msgstr "" + +#: InputBox.class:205 frmDriveSelect.class:126 frmPartSelect.class:371 +msgid "OK" +msgstr "" + +#: InputBox.class:212 frmDriveSelect.class:133 frmPartSelect.class:378 +msgid "Cancel" +msgstr "" + +#: frmChoice.class:92 +msgid "" +"

You have 3 choices:

\n" +"\n" +"
    \n" +"
  • Full-automatic install: Our easiest install yet; choose " +"this option if you want to use your entire hard disk for VL. Your system " +"will be automatically set up, partitions and all. WARNING: this option will DELETE everything on your hard disk, or offer a " +"choice if there are multiple disks. There will of course be a " +"confirmation dialog in case you selected this option by mistake.
  • \n" +"
  • Semi-automatic install: With this option, you manually " +"partition your drives with gparted, but the rest of the setup will be pretty " +"automatic.
  • \n" +"
  • Advanced install: For the technically savvy user that must " +"do everything by hand. You can control most aspects of the install. However, " +"there will be assisted options available all the way through, so this is a " +"very flexible install.
  • \n" +"
\n" +msgstr "" + +#: frmChoice.class:103 +msgid "Choose install type" +msgstr "" + +#: frmChoice.class:118 +msgid "Install types" +msgstr "" + +#: frmChoice.class:123 +msgid "Full-automatic" +msgstr "" + +#: frmChoice.class:129 +msgid "Semi-automatic" +msgstr "" + +#: frmChoice.class:135 +msgid "Advanced" +msgstr "" + +#: frmConfig.class:114 +msgid "" +"

Configuration:

\n" +"\n" +"Linux Loader boot manager setup:\n" +"
    \n" +"
  • Master Boot Record: Install Linux Loader boot manager to the " +"master Boot Record of the bootable hard disk. This is the simplest method " +"and the default action for most common operating systems.
  • \n" +"
  • VL Boot sector: Install Linux Loader boot manager to the Boot " +"Sector of the Vector Linux install partition. This will require the " +"following extra steps:\n" +"
      \n" +"
    • make the Vector Linux partition bootable using a partition manager.\n" +"
    • add an option to your default boot manager to boot to LiLo in this " +"partition.
    • \n" +"
    \n" +"
  • \n" +"
  • Floppy diskette: Install Linux Loader boot manager to a floopy " +"diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux " +"install by simply booting the diskette.
  • \n" +"
  • Do not install: Do not install Linux Loader. Select this if you " +"use another boot manager and know how to set up an option to boot the Vector " +"Linux install from it.
  • \n" +"
\n" +"\n" +"Other configuration:\n" +"
    \n" +"
  • Config 1: Other configuration selection 1.
  • \n" +"
  • Config 2: Other configuration selection 2.
  • \n" +"
\n" +msgstr "" + +#: frmConfig.class:125 +msgid "Additional configuration" +msgstr "" + +#: frmConfig.class:140 +msgid "Boot manager" +msgstr "" + +#: frmConfig.class:147 +msgid "Master Boot Record" +msgstr "" + +#: frmConfig.class:155 +msgid "VL Boot Sector" +msgstr "" + +#: frmConfig.class:163 +msgid "Floppy diskette" +msgstr "" + +#: frmConfig.class:171 +msgid "Do not install" +msgstr "" + +#: frmConfig.class:178 +msgid "Other configuration" +msgstr "" + +#: frmConfig.class:185 +msgid "Config 1" +msgstr "" + +#: frmConfig.class:193 +msgid "Config 2" +msgstr "" + +#: frmDriveSelect.class:107 frmPartSelect.class:346 +msgid "Drives" +msgstr "" + +#: frmDriveSelect.class:115 +msgid "Click on a row to select..." +msgstr "" + +#: frmGO.class:85 +msgid "Ready to install!" +msgstr "" + +#: frmMain.class:207 +msgid "Welcome!" +msgstr "" + +#: frmMain.class:216 +msgid "The choice" +msgstr "" + +#: frmMain.class:225 frmPartSelect.class:386 +msgid "Partitions" +msgstr "" + +#: frmMain.class:234 +msgid "Packages" +msgstr "" + +#: frmMain.class:243 +msgid "Configure" +msgstr "" + +#: frmMain.class:252 +msgid "Go for it!" +msgstr "" + +#: frmMain.class:264 +msgid "Tools" +msgstr "" + +#: frmMain.class:275 +msgid "Exit" +msgstr "" + +#: frmPackages.class:99 +msgid "" +"

Package selection strategies:

\n" +"\n" +"Assisted selection: Maintains dependency coherency.\n" +"
    \n" +"
  • All packages: Equivalent to a full distro install. All included " +"packages will be installed to your hard disk.
  • \n" +"
  • Package groups: Allow selection of what to install by logical " +"package groupings.
  • \n" +"
\n" +"Advanced selection: WARNING: you will " +"be responsible for what you install or not.\n" +"
    \n" +"
  • Manual selection: Manual selection from the full list of " +"packages, sorted by categories.
  • \n" +"
  • No extra packages: Install just the Vector Linux base distro. You " +"know what you really want and will customise the install yourself.\n" +"
\n" +msgstr "" + +#: frmPackages.class:111 +msgid "Package selection" +msgstr "" + +#: frmPackages.class:126 +msgid "Assisted selection" +msgstr "" + +#: frmPackages.class:131 +msgid "All packages" +msgstr "" + +#: frmPackages.class:137 +msgid "By groups" +msgstr "" + +#: frmPackages.class:144 +msgid "Advanced selection" +msgstr "" + +#: frmPackages.class:149 frmPartitions.class:266 +msgid "Manual" +msgstr "" + +#: frmPackages.class:155 +msgid "No extras" +msgstr "" + +#: frmPartSelect.class:260 +msgid "Mountpoints" +msgstr "" + +#: frmPartSelect.class:266 +msgid "/" +msgstr "" + +#: frmPartSelect.class:272 +msgid "/home" +msgstr "" + +#: frmPartSelect.class:278 +msgid "/var" +msgstr "" + +#: frmPartSelect.class:284 +msgid "/opt" +msgstr "" + +#: frmPartSelect.class:290 +msgid "/tmp" +msgstr "" + +#: frmPartSelect.class:296 +msgid "/boot" +msgstr "" + +#: frmPartSelect.class:302 +msgid "/usr" +msgstr "" + +#: frmPartSelect.class:308 +msgid "/share" +msgstr "" + +#: frmPartSelect.class:314 +msgid "FileSystem" +msgstr "" + +#: frmPartSelect.class:320 +msgid "xfs" +msgstr "" + +#: frmPartSelect.class:326 +msgid "reiserfs" +msgstr "" + +#: frmPartSelect.class:332 +msgid "ext3" +msgstr "" + +#: frmPartSelect.class:338 +msgid "ext2" +msgstr "" + +#: frmPartSelect.class:354 +msgid "Click on select install drive" +msgstr "" + +#: frmPartSelect.class:360 +msgid "Right-click in Mount or FileSystem to set" +msgstr "" + +#: frmPartSelect.class:394 +msgid "" +"
    \n" +"
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n" +"
  • Right-click on Linux partitions to pick mountpoint
  • \n" +"
  • Left-click on other partitions to edit mountpoint
  • \n" +"
\n" +msgstr "" + +#: frmPartitions.class:217 +msgid "" +"

Available partitioning modes:

\n" +"\n" +"Automatic partitioning: The installer will handle all " +"partition related decisions for you:\n" +"
    \n" +"
  • Full disk: Choose this option if you want to use your entire hard " +"disk for VL. WARNING: this option will DELETE " +"everything on your hard disk, or offer a choice if there are multiple disks. " +"You have been WARNED.
  • \n" +"
  • Free space: using available free (unpartitioned) disk space.\n" +"
\n" +"Manual partitioning: You have full control of partitioning.\n" +"
    \n" +"
  • Using gparted (the advanced graphical partitioner).
  • \n" +"
  • Using cfdisk (the traditional partition tool).
  • \n" +"
\n" +"Other partitioning:\n" +"
    \n" +"
  • Preset strategies: auto allocates partitions according to most " +"common usage strategy intended for this computer.
  • \n" +"
  • No partitioning: If you wish to use existing Linux and swap " +"partitions. WARNING: The existing Linux partitions " +"will be OVERWRITTEN. You have been WARNED.
  • \n" +"
\n" +msgstr "" + +#: frmPartitions.class:229 +msgid "Partitioning mode" +msgstr "" + +#: frmPartitions.class:244 +msgid "Automatic" +msgstr "" + +#: frmPartitions.class:251 +msgid "Full disk" +msgstr "" + +#: frmPartitions.class:259 +msgid "Free space" +msgstr "" + +#: frmPartitions.class:273 +msgid "GParted" +msgstr "" + +#: frmPartitions.class:281 +msgid "cfdisk" +msgstr "" + +#: frmPartitions.class:288 +msgid "Others" +msgstr "" + +#: frmPartitions.class:295 +msgid "Preset strategies" +msgstr "" + +#: frmPartitions.class:303 +msgid "No partitioning" +msgstr "" + +#: frmTools.class:113 +msgid "" +"

Vector Linux repair tools:

\n" +"\n" +"Distro repair tools:\n" +"
    \n" +"
  • Repair LILO: Repair Linux Loader boot manager of an " +"existing Vector Linux installation.
  • \n" +"
  • Restore packages: Restore original packages from the install CD, " +"to fix a broken upgrade.
  • \n" +"
\n" +"Backup / restore tools:\n" +"
    \n" +"
  • Backup /home: Backup your /home directory for safekeeping.
  • \n" +"
  • Restore /home: Restore your /home directory from a previous " +"backup. WARNING: The existing /home directory will " +"be OVERWRITTEN during restore. You have been WARNED.
  • \n" +"
\n" +"Miscellaneous tools: \n" +"
    \n" +"
  • Tool 5: Tool number 5 to fix something or other.
  • \n" +"
  • Tool 6: Tool number 6 to fix something or other.
  • \n" +"
\n" +msgstr "" + +#: frmTools.class:124 +msgid "VL Tools" +msgstr "" + +#: frmTools.class:139 +msgid "Distro repair" +msgstr "" + +#: frmTools.class:146 +msgid "Restore packages" +msgstr "" + +#: frmTools.class:154 +msgid "Repair LILO" +msgstr "" + +#: frmTools.class:161 +msgid "Backup / restore" +msgstr "" + +#: frmTools.class:168 +msgid "Backup /home" +msgstr "" + +#: frmTools.class:176 +msgid "Restore /home" +msgstr "" + +#: frmTools.class:183 +msgid "Miscellaneous" +msgstr "" + +#: frmTools.class:190 +msgid "Tool 5" +msgstr "" + +#: frmTools.class:198 +msgid "(Make FHS tree)" +msgstr "" + +#: frmWelcome.class:75 +msgid "" +"

Dear Vector Linux user:

\n" +"\n" +"

\n" +"We have worked very hard to make this install as quick and easy as possible. " +"We hope you will also like its looks. To install, click on the START button below the VL logo. Use the buttons " +"on the top row to return to a previous stage. If you have already installed " +"VL and just need to use some of the rescue functions, head on over to the " +"Tools button.\n" +"


\n" +"\n" +"

About:

\n" +"\n" +"

\n" +"Vector Linux is a small, but full-featured and VERY fast, Linux operating " +"system for x86 PCs, based on one of the original Linux distributions, " +"Slackware. VL is bloat free, easy to install, configure and maintain, with " +"automatic hardware configuration, unique administration tools and easy " +"package management via the Gslapt/slapt-get system.\n" +"


\n" +"\n" +"

Credits:

\n" +"\n" +"

\n" +"Installer made in Gambas2 by Joe1962 and Uelsk8s, Gambas is the copyright of " +"Benoit Minisini.\n" +"

\n" +"\n" +"

\n" +"The Vector Linux Community members that made this release possible: Vector " +"(Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 (SOHO " +"Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, " +"Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, " +"JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, " +"Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, " +"TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, " +"Yiannis, Zarniwoop.\n" +"

\n" +msgstr "" + +#: frmWelcome.class:86 +msgid "Welcome to Vector Linux!" +msgstr "" + +#: frmWelcome.class:111 +msgid "START" +msgstr "" diff --git a/.lang/Functions.pot b/.lang/Functions.pot new file mode 100644 index 0000000..fb930b9 --- /dev/null +++ b/.lang/Functions.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/Functions.module +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/Global.pot b/.lang/Global.pot new file mode 100644 index 0000000..6aa646e --- /dev/null +++ b/.lang/Global.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/Global.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/InputBox.pot b/.lang/InputBox.pot new file mode 100644 index 0000000..82e383c --- /dev/null +++ b/.lang/InputBox.pot @@ -0,0 +1,28 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/InputBox.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: InputBox.class:199 +msgid "Enter a value:" +msgstr "" + +#: InputBox.class:205 +msgid "OK" +msgstr "" + +#: InputBox.class:212 +msgid "Cancel" +msgstr "" + diff --git a/.lang/Main.pot b/.lang/Main.pot new file mode 100644 index 0000000..f403001 --- /dev/null +++ b/.lang/Main.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/Main.module +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/Utils.pot b/.lang/Utils.pot new file mode 100644 index 0000000..1b3fdd2 --- /dev/null +++ b/.lang/Utils.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/Utils.module +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/cDiskInfo.pot b/.lang/cDiskInfo.pot new file mode 100644 index 0000000..749f428 --- /dev/null +++ b/.lang/cDiskInfo.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/cDiskInfo.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/cPartInfo.pot b/.lang/cPartInfo.pot new file mode 100644 index 0000000..1eccf09 --- /dev/null +++ b/.lang/cPartInfo.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/cPartInfo.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/cPartInstall.pot b/.lang/cPartInstall.pot new file mode 100644 index 0000000..9f44cb5 --- /dev/null +++ b/.lang/cPartInstall.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/cPartInstall.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/en.mo b/.lang/en.mo new file mode 100644 index 0000000000000000000000000000000000000000..2adc4348670561734001dfc330704e1572f45b39 GIT binary patch literal 14610 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 literal 0 HcmV?d00001 diff --git a/.lang/en.po b/.lang/en.po new file mode 100644 index 0000000..ff698e2 --- /dev/null +++ b/.lang/en.po @@ -0,0 +1,705 @@ +# #-#-#-#-# #project.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/.project +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# Global.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/Global.module +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmChoice.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmChoice.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmGO.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmGO.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmLieLow.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmLieLow.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmMain.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmMain.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPackages.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPackages.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPartitioner.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPartitioner.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPartitions.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPartitions.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmTools.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmTools.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmWelcome.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmWelcome.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .project:1 +#, fuzzy +msgid "VL-gui-installer" +msgstr "new-installer" + +#: InputBox.class:196 +msgid "Enter a value:" +msgstr "" + +#: InputBox.class:202 frmDriveSelect.class:123 frmPartSelect.class:367 +msgid "OK" +msgstr "" + +#: InputBox.class:209 frmDriveSelect.class:130 frmPartSelect.class:374 +msgid "Cancel" +msgstr "" + +#: frmChoice.class:90 +#, fuzzy +msgid "" +"

You have 3 choices:

\n" +"\n" +"
    \n" +"\t
  • Full-automatic install: Our easiest install yet; just " +"choose this option and click ok and your system will be set up, partitions " +"and all. WARNING: this option will DELETE everything " +"on your hard disk, or offer a choice if there are multiple disks (unless one " +"is empty). You have been WARNED.
  • \n" +"\t
  • Semi-automatic install: This option is much easier with " +"the added GParted; just partition your drives and your system will be set up " +"for you.
  • \n" +"\t
  • Advanced install: For the technically savvy user that " +"must do everything by hand. You can control most aspects of the install.\n" +"
\n" +msgstr "" +"

You have 3 choices:

\n" +"\n" +"
    \n" +"\t
  • Full-automatic install: Our easiest install yet; just " +"choose this option and click ok and your system will be set up, partitions " +"and all. WARNING: this option will DELETE everything " +"on your hard disk, or offer a choice if there are multiple disks (unless one " +"is empty). You have been WARNED.
  • \n" +"\t
  • Semi-automatic install: This option is much easier with " +"the added GParted; just partition your drives and your system will be set up " +"for you.
  • \n" +"\t
  • Advanced install: For the technically savvy user that " +"must do everything by hand. You can control most aspects of the install.\n" +"
\n" + +#: frmChoice.class:101 +msgid "Choose install type" +msgstr "Choose install type" + +#: frmChoice.class:116 +msgid "Install types" +msgstr "Install types" + +#: frmChoice.class:121 +msgid "Full-automatic" +msgstr "Full-automatic" + +#: frmChoice.class:127 +msgid "Semi-automatic" +msgstr "Semi-automatic" + +#: frmChoice.class:133 +#, fuzzy +msgid "Advanced" +msgstr "Advanced install" + +#: frmConfig.class:112 +msgid "" +"

Configuration:

\n" +"\n" +"Linux Loader boot manager setup:\n" +"
    \n" +"\t
  • Master Boot Record: Install Linux Loader boot manager to the " +"master Boot Record of the bootable hard disk. This is the simplest method " +"and the default action for most common operating systems.
  • \n" +"\t
  • VL Boot sector: Install Linux Loader boot manager to the Boot " +"Sector of the Vector Linux install partition. This will require the " +"following extra steps:\n" +"\t\t
      \n" +"\t\t\t
    • make the Vector Linux partition bootable using a partition manager." +"
    • \n" +"\t\t\t
    • add an option to your default boot manager to boot to LiLo in this " +"partition.
    • \n" +"\t\t
    \n" +"\t
  • \n" +"\t
  • Floppy diskette: Install Linux Loader boot manager to a floopy " +"diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux " +"install by simply booting the diskette.
  • \n" +"\t
  • Do not install: Do not install Linux Loader. Select this if you " +"use another boot manager and know how to set up an option to boot the Vector " +"Linux install from it.
  • \n" +"
\n" +"\n" +"Other configuration:\n" +"
    \n" +"\t
  • Config 1: Other configuration selection 1.
  • \n" +"\t
  • Config 2: Other configuration selection 2.
  • \n" +"
\n" +msgstr "" +"

Configuration:

\n" +"\n" +"Linux Loader boot manager setup:\n" +"
    \n" +"\t
  • Master Boot Record: Install Linux Loader boot manager to the " +"master Boot Record of the bootable hard disk. This is the simplest method " +"and the default action for most common operating systems.
  • \n" +"\t
  • VL Boot sector: Install Linux Loader boot manager to the Boot " +"Sector of the Vector Linux install partition. This will require the " +"following extra steps:\n" +"\t\t
      \n" +"\t\t\t
    • make the Vector Linux partition bootable using a partition manager." +"
    • \n" +"\t\t\t
    • add an option to your default boot manager to boot to LiLo in this " +"partition.
    • \n" +"\t\t
    \n" +"\t
  • \n" +"\t
  • Floppy diskette: Install Linux Loader boot manager to a floopy " +"diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux " +"install by simply booting the diskette.
  • \n" +"\t
  • Do not install: Do not install Linux Loader. Select this if you " +"use another boot manager and know how to set up an option to boot the Vector " +"Linux install from it.
  • \n" +"
\n" +"\n" +"Other configuration:\n" +"
    \n" +"\t
  • Config 1: Other configuration selection 1.
  • \n" +"\t
  • Config 2: Other configuration selection 2.
  • \n" +"
\n" + +#: frmConfig.class:123 +msgid "Additional configuration" +msgstr "Additional configuration" + +#: frmConfig.class:138 +msgid "Boot manager" +msgstr "Boot manager" + +#: frmConfig.class:145 +msgid "Master Boot Record" +msgstr "Master Boot Record" + +#: frmConfig.class:153 +msgid "VL Boot Sector" +msgstr "VL Boot Sector" + +#: frmConfig.class:161 +msgid "Floppy diskette" +msgstr "Floppy diskette" + +#: frmConfig.class:169 +msgid "Do not install" +msgstr "Do not install" + +#: frmConfig.class:176 +msgid "Other configuration" +msgstr "Other configuration" + +#: frmConfig.class:183 +msgid "Config 1" +msgstr "Config 1" + +#: frmConfig.class:191 +msgid "Config 2" +msgstr "Config 2" + +#: frmDriveSelect.class:104 frmPartSelect.class:342 +msgid "Drives" +msgstr "" + +#: frmDriveSelect.class:112 +msgid "Click on a row to select..." +msgstr "" + +#: frmGO.class:83 +msgid "Ready to install!" +msgstr "Ready to install!" + +#: frmMain.class:202 +msgid "Welcome!" +msgstr "Welcome!" + +#: frmMain.class:211 +msgid "The choice" +msgstr "The choice" + +#: frmMain.class:220 frmPartSelect.class:382 +msgid "Partitions" +msgstr "Partitions" + +#: frmMain.class:229 +msgid "Packages" +msgstr "Packages" + +#: frmMain.class:238 +msgid "Configure" +msgstr "Configure" + +#: frmMain.class:247 +msgid "Go for it!" +msgstr "Go for it!" + +#: frmMain.class:259 +msgid "Tools" +msgstr "Tools" + +#: frmMain.class:270 +msgid "Exit" +msgstr "Exit" + +#: frmPackages.class:97 +#, fuzzy +msgid "" +"

Package selection strategies:

\n" +"\n" +"Assisted selection: Maintains dependency coherency.\n" +"
    \n" +"\t
  • All packages: Equivalent to a full distro install. All included " +"packages will be installed to your hard disk.
  • \n" +"\t
  • Package groups: Allow selection of what to install by logical " +"package groupings.
  • \n" +"
\n" +"Advanced selection: WARNING: you will " +"be responsible for what you install or not.\n" +"
    \n" +"\t
  • Manual selection: Manual selection from the full list of " +"packages, sorted by categories.
  • \n" +"\t
  • No extra packages: Install just the Vector Linux base distro. " +"You know what you really want and will customise the install yourself.
  • \n" +"
\n" +msgstr "" +"

Package selection strategies:

\n" +"\n" +"Assisted selection: Maintains dependency coherency.\n" +"
    \n" +"\t
  • All packages: Equivalent to a full distro install. All included " +"packages will be installed to your hard disk.
  • \n" +"\t
  • Package groups: Allow selection of what to install by logical " +"package groupings.
  • \n" +"
\n" +"Advanced selection: WARNING: you will " +"be responsible for what you install or not.\n" +"
    \n" +"\t
  • Manual selection: Manual selection from the full list of " +"packages, sorted by categories.
  • \n" +"\t
  • No extra packages: Install just the Vector Linux base distro. " +"You know what you really want and will customise the install yourself.
  • \n" +"
\n" + +#: frmPackages.class:109 +msgid "Package selection" +msgstr "Package selection" + +#: frmPackages.class:124 +msgid "Assisted selection" +msgstr "Assisted selection" + +#: frmPackages.class:129 +msgid "All packages" +msgstr "All packages" + +#: frmPackages.class:135 +#, fuzzy +msgid "By groups" +msgstr "Package groups" + +#: frmPackages.class:142 +msgid "Advanced selection" +msgstr "Advanced selection" + +#: frmPackages.class:147 frmPartitions.class:278 +msgid "Manual" +msgstr "" + +#: frmPackages.class:153 +#, fuzzy +msgid "No extras" +msgstr "No extra packages" + +#: frmPartSelect.class:256 +msgid "Mountpoints" +msgstr "" + +#: frmPartSelect.class:262 +msgid "/" +msgstr "" + +#: frmPartSelect.class:268 +msgid "/home" +msgstr "" + +#: frmPartSelect.class:274 +msgid "/var" +msgstr "" + +#: frmPartSelect.class:280 +msgid "/opt" +msgstr "" + +#: frmPartSelect.class:286 +msgid "/tmp" +msgstr "" + +#: frmPartSelect.class:292 +msgid "/boot" +msgstr "" + +#: frmPartSelect.class:298 +msgid "/usr" +msgstr "" + +#: frmPartSelect.class:304 +msgid "/share" +msgstr "" + +#: frmPartSelect.class:310 +msgid "FileSystem" +msgstr "" + +#: frmPartSelect.class:316 +msgid "xfs" +msgstr "" + +#: frmPartSelect.class:322 +msgid "reiserfs" +msgstr "" + +#: frmPartSelect.class:328 +msgid "ext3" +msgstr "" + +#: frmPartSelect.class:334 +msgid "ext2" +msgstr "" + +#: frmPartSelect.class:350 +msgid "Click on select install drive" +msgstr "" + +#: frmPartSelect.class:356 +msgid "Right-click in Mount or FileSystem to set" +msgstr "" + +#: frmPartSelect.class:390 +msgid "" +"
    \n" +"
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n" +"
  • Right-click on Linux partitions to pick mountpoint
  • \n" +"
  • Left-click on other partitions to edit mountpoint
  • \n" +"
\n" +msgstr "" + +#: frmPartitions.class:229 +#, fuzzy +msgid "" +"

Available partitioning modes:

\n" +"\n" +"Automatic partitioning: The installer will handle all " +"partition related decisions for you:\n" +"\t
    \n" +"\t\t
  • Full disk: WARNING: this option will " +"DELETE everything on your hard disk, or offer a choice if there are multiple " +"disks (unless one is empty). You have been WARNED.
  • \n" +"\t\t
  • Free space: using available free (unpartitioned) disk space.\n" +"\t
\n" +"Manual partitioning: You have full control of partitioning.\n" +"\t
    \n" +"\t\t
  • Using GParted (the advanced graphical partitioner).
  • \n" +"\t\t
  • Using cfdisk (the traditional partition tool).
  • \n" +"\t
\n" +"Other partitioning:\n" +"\t
    \n" +"\t\t
  • Preset strategies: auto allocates partitions according to " +"most common usage strategy intended for this computer.
  • \n" +"\t\t
  • No partitioning: If you wish to use existing Linux and swap " +"partitions. WARNING: The existing Linux partitions " +"will be OVERWRITTEN. You have been WARNED.
  • \n" +"\t
\n" +msgstr "" +"

Available partitioning modes:

\n" +"\n" +"Automatic partitioning: The installer will handle all " +"partition related decisions for you:\n" +"\t
    \n" +"\t\t
  • Full disk: WARNING: this option will " +"DELETE everything on your hard disk, or offer a choice if there are multiple " +"disks (unless one is empty). You have been WARNED.
  • \n" +"\t\t
  • Free space: using available free (unpartitioned) disk space.\n" +"\t
\n" +"Manual partitioning: You have full control of partitioning.\n" +"\t
    \n" +"\t\t
  • Using GParted (the advanced graphical partitioner).
  • \n" +"\t\t
  • Using cfdisk (the traditional partition tool).
  • \n" +"\t
\n" +"Other partitioning:\n" +"\t
    \n" +"\t\t
  • Preset strategies: auto allocates partitions according to " +"most common usage strategy intended for this computer.
  • \n" +"\t\t
  • No partitioning: If you wish to use existing Linux and swap " +"partitions. WARNING: The existing Linux partitions " +"will be OVERWRITTEN. You have been WARNED.
  • \n" +"\t
\n" + +#: frmPartitions.class:241 +msgid "Partitioning mode" +msgstr "Partitioning mode" + +#: frmPartitions.class:256 +#, fuzzy +msgid "Automatic" +msgstr "Full-automatic" + +#: frmPartitions.class:263 +msgid "Full disk" +msgstr "Full disk" + +#: frmPartitions.class:271 +msgid "Free space" +msgstr "Free space" + +#: frmPartitions.class:285 +msgid "GParted" +msgstr "GParted" + +#: frmPartitions.class:293 +msgid "cfdisk" +msgstr "cfdisk" + +#: frmPartitions.class:300 +msgid "Others" +msgstr "" + +#: frmPartitions.class:307 +msgid "Preset strategies" +msgstr "Preset strategies" + +#: frmPartitions.class:315 +msgid "No partitioning" +msgstr "No partitioning" + +#: frmTools.class:110 +#, fuzzy +msgid "" +"

Vector Linux repair tools:

\n" +"\n" +"Distro repair tools: \n" +"
    \n" +"\t
  • Repair LILO: Repair Linux Loader boot manager of an " +"existing Vector Linux installation.
  • \n" +"\t
  • Restore packages: Restore original packages from the install " +"CD, to fix a broken upgrade.
  • \n" +"
\n" +"Backup / restore tools: \n" +"
    \n" +"\t
  • Backup /home: Backup your /home directory for safekeeping.\n" +"\t
  • Restore /home: Restore your /home directory from a previous " +"backup. WARNING: The existing /home directory will " +"be OVERWRITTEN during restore. You have been WARNED.
  • \n" +"
\n" +"Miscellaneous tools: \n" +"
    \n" +"\t
  • Tool 5: Tool number 5 to fix something or other.
  • \n" +"\t
  • Tool 6: Tool number 6 to fix something or other.
  • \n" +"
\n" +"\n" +msgstr "" +"

Vector Linux repair tools:

\n" +"\n" +"Distro repair tools: \n" +"
    \n" +"\t
  • Repair LILO: Repair Linux Loader boot manager of an " +"existing Vector Linux installation.
  • \n" +"\t
  • Restore packages: Restore original packages from the install " +"CD, to fix a broken upgrade.
  • \n" +"
\n" +"Backup / restore tools: \n" +"
    \n" +"\t
  • Backup /home: Backup your /home directory for safekeeping.\n" +"\t
  • Restore /home: Restore your /home directory from a previous " +"backup.
  • \n" +"
\n" +"Miscellaneous tools: \n" +"
    \n" +"\t
  • Tool 5: Tool number 5 to fix something or other.
  • \n" +"\t
  • Tool 6: Tool number 6 to fix something or other.
  • \n" +"
\n" +"\n" + +#: frmTools.class:122 +msgid "VL Tools" +msgstr "VL Tools" + +#: frmTools.class:137 +#, fuzzy +msgid "Distro repair" +msgstr "Distro repair tools" + +#: frmTools.class:144 +msgid "Restore packages" +msgstr "Restore packages" + +#: frmTools.class:152 +msgid "Repair LILO" +msgstr "Repair LILO" + +#: frmTools.class:159 +#, fuzzy +msgid "Backup / restore" +msgstr "Backup / restore tools" + +#: frmTools.class:166 +msgid "Backup /home" +msgstr "Backup /home" + +#: frmTools.class:174 +msgid "Restore /home" +msgstr "Restore /home" + +#: frmTools.class:181 +#, fuzzy +msgid "Miscellaneous" +msgstr "Miscellaneous tools" + +#: frmTools.class:188 +msgid "Tool 5" +msgstr "Tool 5" + +#: frmTools.class:196 +msgid "(Make FHS tree)" +msgstr "" + +#: frmWelcome.class:70 +#, fuzzy +msgid "" +"

Dear Vector Linux user:

\n" +"\n" +"

We have worked very hard to make this install as quick and easy as " +"possible. We hope you will also like its looks ;-). To install, click on the " +"START button below the VL logo. Use " +"the buttons on the top row to return to a previous stage. If you have " +"already installed VL and just need to use some of the rescue functions, head " +"on over to the Tools button.

\n" +"\n" +"

Distro Credits:

\n" +"\n" +"

The Vector Linux Community members that made this endeavour possible: " +"Vector (Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 " +"(SOHO Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, " +"Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, " +"JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, " +"Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, " +"TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, " +"Yiannis, Zarniwoop.

\n" +"\n" +"

Installer Credits:

\n" +"

Made in Gambas2 by Joe1962 and Uelsk8s.

\n" +"\n" +"

Vector Linux links:

\n" +"\n" +"\n" +"\n" +"\n" +msgstr "" +"

Dear Vector Linux user:

\n" +"\n" +"

We have worked very hard to make this install as quick and easy as " +"possible. We hope you will also like it's looks ;-). To install, just take " +"the buttons on the top row in order, though depending on the choices you " +"make in each screen, you might automatically jump some steps. If you have " +"already installed and need to use some of the rescue functions, head on over " +"to the Tools button.

\n" +"\n" +"

Distro Credits:

\n" +"\n" +"

The Vector Linux Community members that made this endeavour possible: " +"Vector (VL Founder), JohnB316 (SOHO coordinator), Hanumizzle, " +"Lost&LovingLinux, Kocil, BigPaws, Cintyram, Lagagnon, GrannyGeek, Gamfa, " +"Jaos, Joe1962, JohnVan, Lyn, Monty67, PastorEd, The HeadAcher, Paul, SuSE-" +"Refugee, Vanger, TonyH9904, UKBill, Uelsk8s, VxT.

\n" +"\n" +"

Installer Credits:

\n" +"

Made in Gambas2 by Joe1962 and Uelsk8s.

\n" +"\n" +"

Vector Linux links:

\n" +"\n" +"
    \n" +"\t
  • Homepage: http://www.vectorlinux.com
  • \n" +"\t
  • User Forum: http://www.vectorlinux.com/forum
  • \n" +"\t
  • SourceForge: https://sourceforge.net/projects/vectorlinux
  • \n" +"\t
  • Wikipedia: http://en.wikipedia.org/wiki/Vector_Linux
  • \n" +"
\n" +"\n" +"\n" + +#: frmWelcome.class:82 +msgid "Welcome to Vector Linux!" +msgstr "Welcome to Vector Linux!" + +#: frmWelcome.class:99 +msgid "START" +msgstr "" + +#~ msgid "Auto partitioning" +#~ msgstr "Auto partitioning" + +#~ msgid "Manual partitioning" +#~ msgstr "Manual partitioning" + +#~ msgid "Manual selection" +#~ msgstr "Manual selection" + +#~ msgid "Other partitioning" +#~ msgstr "Other partitioning" + +#~ msgid "Tool 6" +#~ msgstr "Tool 6" diff --git a/.lang/en_US.po b/.lang/en_US.po new file mode 100644 index 0000000..05a3e2a --- /dev/null +++ b/.lang/en_US.po @@ -0,0 +1,483 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .project:1 +msgid "VL-gui-installer" +msgstr "" + +#: InputBox.class:196 +msgid "Enter a value:" +msgstr "" + +#: InputBox.class:202 frmDriveSelect.class:123 frmPartSelect.class:367 +msgid "OK" +msgstr "" + +#: InputBox.class:209 frmDriveSelect.class:130 frmPartSelect.class:374 +msgid "Cancel" +msgstr "" + +#: frmChoice.class:90 +msgid "" +"

You have 3 choices:

\n" +"\n" +"
    \n" +"\t
  • Full-automatic install: Our easiest install yet; just " +"choose this option and click ok and your system will be set up, partitions " +"and all. WARNING: this option will DELETE everything " +"on your hard disk, or offer a choice if there are multiple disks (unless one " +"is empty). You have been WARNED.
  • \n" +"\t
  • Semi-automatic install: This option is much easier with " +"the added GParted; just partition your drives and your system will be set up " +"for you.
  • \n" +"\t
  • Advanced install: For the technically savvy user that " +"must do everything by hand. You can control most aspects of the install.\n" +"
\n" +msgstr "" + +#: frmChoice.class:101 +msgid "Choose install type" +msgstr "" + +#: frmChoice.class:116 +msgid "Install types" +msgstr "" + +#: frmChoice.class:121 +msgid "Full-automatic" +msgstr "" + +#: frmChoice.class:127 +msgid "Semi-automatic" +msgstr "" + +#: frmChoice.class:133 +msgid "Advanced" +msgstr "" + +#: frmConfig.class:112 +msgid "" +"

Configuration:

\n" +"\n" +"Linux Loader boot manager setup:\n" +"
    \n" +"\t
  • Master Boot Record: Install Linux Loader boot manager to the " +"master Boot Record of the bootable hard disk. This is the simplest method " +"and the default action for most common operating systems.
  • \n" +"\t
  • VL Boot sector: Install Linux Loader boot manager to the Boot " +"Sector of the Vector Linux install partition. This will require the " +"following extra steps:\n" +"\t\t
      \n" +"\t\t\t
    • make the Vector Linux partition bootable using a partition manager." +"
    • \n" +"\t\t\t
    • add an option to your default boot manager to boot to LiLo in this " +"partition.
    • \n" +"\t\t
    \n" +"\t
  • \n" +"\t
  • Floppy diskette: Install Linux Loader boot manager to a floopy " +"diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux " +"install by simply booting the diskette.
  • \n" +"\t
  • Do not install: Do not install Linux Loader. Select this if you " +"use another boot manager and know how to set up an option to boot the Vector " +"Linux install from it.
  • \n" +"
\n" +"\n" +"Other configuration:\n" +"
    \n" +"\t
  • Config 1: Other configuration selection 1.
  • \n" +"\t
  • Config 2: Other configuration selection 2.
  • \n" +"
\n" +msgstr "" + +#: frmConfig.class:123 +msgid "Additional configuration" +msgstr "" + +#: frmConfig.class:138 +msgid "Boot manager" +msgstr "" + +#: frmConfig.class:145 +msgid "Master Boot Record" +msgstr "" + +#: frmConfig.class:153 +msgid "VL Boot Sector" +msgstr "" + +#: frmConfig.class:161 +msgid "Floppy diskette" +msgstr "" + +#: frmConfig.class:169 +msgid "Do not install" +msgstr "" + +#: frmConfig.class:176 +msgid "Other configuration" +msgstr "" + +#: frmConfig.class:183 +msgid "Config 1" +msgstr "" + +#: frmConfig.class:191 +msgid "Config 2" +msgstr "" + +#: frmDriveSelect.class:104 frmPartSelect.class:342 +msgid "Drives" +msgstr "" + +#: frmDriveSelect.class:112 +msgid "Click on a row to select..." +msgstr "" + +#: frmGO.class:83 +msgid "Ready to install!" +msgstr "" + +#: frmMain.class:202 +msgid "Welcome!" +msgstr "" + +#: frmMain.class:211 +msgid "The choice" +msgstr "" + +#: frmMain.class:220 frmPartSelect.class:382 +msgid "Partitions" +msgstr "" + +#: frmMain.class:229 +msgid "Packages" +msgstr "" + +#: frmMain.class:238 +msgid "Configure" +msgstr "" + +#: frmMain.class:247 +msgid "Go for it!" +msgstr "" + +#: frmMain.class:259 +msgid "Tools" +msgstr "" + +#: frmMain.class:270 +msgid "Exit" +msgstr "" + +#: frmPackages.class:97 +msgid "" +"

Package selection strategies:

\n" +"\n" +"Assisted selection: Maintains dependency coherency.\n" +"
    \n" +"\t
  • All packages: Equivalent to a full distro install. All included " +"packages will be installed to your hard disk.
  • \n" +"\t
  • Package groups: Allow selection of what to install by logical " +"package groupings.
  • \n" +"
\n" +"Advanced selection: WARNING: you will " +"be responsible for what you install or not.\n" +"
    \n" +"\t
  • Manual selection: Manual selection from the full list of " +"packages, sorted by categories.
  • \n" +"\t
  • No extra packages: Install just the Vector Linux base distro. " +"You know what you really want and will customise the install yourself.
  • \n" +"
\n" +msgstr "" + +#: frmPackages.class:109 +msgid "Package selection" +msgstr "" + +#: frmPackages.class:124 +msgid "Assisted selection" +msgstr "" + +#: frmPackages.class:129 +msgid "All packages" +msgstr "" + +#: frmPackages.class:135 +msgid "By groups" +msgstr "" + +#: frmPackages.class:142 +msgid "Advanced selection" +msgstr "" + +#: frmPackages.class:147 frmPartitions.class:278 +msgid "Manual" +msgstr "" + +#: frmPackages.class:153 +msgid "No extras" +msgstr "" + +#: frmPartSelect.class:256 +msgid "Mountpoints" +msgstr "" + +#: frmPartSelect.class:262 +msgid "/" +msgstr "" + +#: frmPartSelect.class:268 +msgid "/home" +msgstr "" + +#: frmPartSelect.class:274 +msgid "/var" +msgstr "" + +#: frmPartSelect.class:280 +msgid "/opt" +msgstr "" + +#: frmPartSelect.class:286 +msgid "/tmp" +msgstr "" + +#: frmPartSelect.class:292 +msgid "/boot" +msgstr "" + +#: frmPartSelect.class:298 +msgid "/usr" +msgstr "" + +#: frmPartSelect.class:304 +msgid "/share" +msgstr "" + +#: frmPartSelect.class:310 +msgid "FileSystem" +msgstr "" + +#: frmPartSelect.class:316 +msgid "xfs" +msgstr "" + +#: frmPartSelect.class:322 +msgid "reiserfs" +msgstr "" + +#: frmPartSelect.class:328 +msgid "ext3" +msgstr "" + +#: frmPartSelect.class:334 +msgid "ext2" +msgstr "" + +#: frmPartSelect.class:350 +msgid "Click on select install drive" +msgstr "" + +#: frmPartSelect.class:356 +msgid "Right-click in Mount or FileSystem to set" +msgstr "" + +#: frmPartSelect.class:390 +msgid "" +"
    \n" +"
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n" +"
  • Right-click on Linux partitions to pick mountpoint
  • \n" +"
  • Left-click on other partitions to edit mountpoint
  • \n" +"
\n" +msgstr "" + +#: frmPartitions.class:229 +msgid "" +"

Available partitioning modes:

\n" +"\n" +"Automatic partitioning: The installer will handle all " +"partition related decisions for you:\n" +"\t
    \n" +"\t\t
  • Full disk: WARNING: this option will " +"DELETE everything on your hard disk, or offer a choice if there are multiple " +"disks (unless one is empty). You have been WARNED.
  • \n" +"\t\t
  • Free space: using available free (unpartitioned) disk space.\n" +"\t
\n" +"Manual partitioning: You have full control of partitioning.\n" +"\t
    \n" +"\t\t
  • Using GParted (the advanced graphical partitioner).
  • \n" +"\t\t
  • Using cfdisk (the traditional partition tool).
  • \n" +"\t
\n" +"Other partitioning:\n" +"\t
    \n" +"\t\t
  • Preset strategies: auto allocates partitions according to " +"most common usage strategy intended for this computer.
  • \n" +"\t\t
  • No partitioning: If you wish to use existing Linux and swap " +"partitions. WARNING: The existing Linux partitions " +"will be OVERWRITTEN. You have been WARNED.
  • \n" +"\t
\n" +msgstr "" + +#: frmPartitions.class:241 +msgid "Partitioning mode" +msgstr "" + +#: frmPartitions.class:256 +msgid "Automatic" +msgstr "" + +#: frmPartitions.class:263 +msgid "Full disk" +msgstr "" + +#: frmPartitions.class:271 +msgid "Free space" +msgstr "" + +#: frmPartitions.class:285 +msgid "GParted" +msgstr "" + +#: frmPartitions.class:293 +msgid "cfdisk" +msgstr "" + +#: frmPartitions.class:300 +msgid "Others" +msgstr "" + +#: frmPartitions.class:307 +msgid "Preset strategies" +msgstr "" + +#: frmPartitions.class:315 +msgid "No partitioning" +msgstr "" + +#: frmTools.class:110 +msgid "" +"

Vector Linux repair tools:

\n" +"\n" +"Distro repair tools: \n" +"
    \n" +"\t
  • Repair LILO: Repair Linux Loader boot manager of an " +"existing Vector Linux installation.
  • \n" +"\t
  • Restore packages: Restore original packages from the install " +"CD, to fix a broken upgrade.
  • \n" +"
\n" +"Backup / restore tools: \n" +"
    \n" +"\t
  • Backup /home: Backup your /home directory for safekeeping.\n" +"\t
  • Restore /home: Restore your /home directory from a previous " +"backup. WARNING: The existing /home directory will " +"be OVERWRITTEN during restore. You have been WARNED.
  • \n" +"
\n" +"Miscellaneous tools: \n" +"
    \n" +"\t
  • Tool 5: Tool number 5 to fix something or other.
  • \n" +"\t
  • Tool 6: Tool number 6 to fix something or other.
  • \n" +"
\n" +"\n" +msgstr "" + +#: frmTools.class:122 +msgid "VL Tools" +msgstr "" + +#: frmTools.class:137 +msgid "Distro repair" +msgstr "" + +#: frmTools.class:144 +msgid "Restore packages" +msgstr "" + +#: frmTools.class:152 +msgid "Repair LILO" +msgstr "" + +#: frmTools.class:159 +msgid "Backup / restore" +msgstr "" + +#: frmTools.class:166 +msgid "Backup /home" +msgstr "" + +#: frmTools.class:174 +msgid "Restore /home" +msgstr "" + +#: frmTools.class:181 +msgid "Miscellaneous" +msgstr "" + +#: frmTools.class:188 +msgid "Tool 5" +msgstr "" + +#: frmTools.class:196 +msgid "(Make FHS tree)" +msgstr "" + +#: frmWelcome.class:70 +msgid "" +"

Dear Vector Linux user:

\n" +"\n" +"

We have worked very hard to make this install as quick and easy as " +"possible. We hope you will also like its looks ;-). To install, click on the " +"START button below the VL logo. Use " +"the buttons on the top row to return to a previous stage. If you have " +"already installed VL and just need to use some of the rescue functions, head " +"on over to the Tools button.

\n" +"\n" +"

Distro Credits:

\n" +"\n" +"

The Vector Linux Community members that made this endeavour possible: " +"Vector (Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 " +"(SOHO Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, " +"Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, " +"JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, " +"Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, " +"TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, " +"Yiannis, Zarniwoop.

\n" +"\n" +"

Installer Credits:

\n" +"

Made in Gambas2 by Joe1962 and Uelsk8s.

\n" +"\n" +"

Vector Linux links:

\n" +"\n" +"\n" +"\n" +"\n" +msgstr "" + +#: frmWelcome.class:82 +msgid "Welcome to Vector Linux!" +msgstr "" + +#: frmWelcome.class:99 +msgid "START" +msgstr "" diff --git a/.lang/es.mo b/.lang/es.mo new file mode 100644 index 0000000000000000000000000000000000000000..b36deea21d0aff7bb3c289a5aaf260d1562fda44 GIT binary patch literal 2795 zcmZvcO^g&p6vs;e(GgTo6u+=WP!VW$WkZ>~wLt?^#;6W1)#Hbg=1BS$tAzm~l8jdOl4_+|wW$e z{VmJeR=;WuV-G^V9wd83%N-!?-vh1(4}kZ9M?q|5C&2r`*TDj)L0W$Xq;+S(wcz_! ze-R`*AAxs)Ux4KIRXcwJr2W5uWcOE){JIU&`U3tofEz&abE_Ti0_psNc3iVO3EqqO z4oK%NgA|8zAo=$JNc%np@nfG^ehK18b`7L;--2}B41tkBz0Urmy1My?OTmA`>{%?@h zuR-w0-e!=_*#^@39U%F)$Ld|nItX{!aS%Ut5`UXO3DUjZ0_h#z0m-lPAf0!~&VK^Z z`maDb?|blJ@JEo&{ln^SgXGsbY$kh~!H2-@AlW@&=U)No9w$JGM+YQ3Z-eB|Im>rJ z+IIn@dwmF!-A}>Cz-u6#_cKWM`_1x}CGC9@vI9c?k_~EGa`gZ2L=UdBoe+vYok5L! zC%^VUwnIt~@~;Tl4JkvYQSMXz^cv;BE{Fpefl$mSPqsp+jY2qe&?pYnp30GZ3+QeX z7iv@oy|&GEs3xC-;F|1d2z@S|htL~Qdjvvpp+?`8N3$Md&w|fT-wgtlDjkWC`#PFa z?XD3thGJ1fz6|;up2$%8xh@QOEd0}=EfeM@iAqu#4C}k8?!b)C4r5g}<|Ew5B-KXt zC+2kr1Fciu5fSVdc6gb$jqb(?8=KcUkz7SdDsWP|97{HqImgSr&ZzBlVRIbk8;v7k zp$r?>Jc3!fn^l)o$|gb`$ICoW$!VFUl1&&Xd4emT+r<&2$a;?GyFNKB46el{HJ{Ul ztF*{!LmnlpE~2go0o>m3>@G9X*Ct?fmH09YMI?1MVN;sRrPPS57sF^4a22&#Bb~?2 zm2uDJ5;mQOcPOZKhExL+yrTm-n1K?3mMKR-L@L_~?=vGsu*_54i%1bO6e#Z1yaxK& zyYP|hL3$%ZCV$+f?5LrbwB{xE=e0uIT3Uzvg&Z$tNZ72GhoOl)(T0Y!Dq*k6(8qg| z6SJ9$dn)QK6?=*z^XIZBh~%4&eK=&qw9yM#?$iQjR+e;}*im<~%4e%H&01rs zFx_Z5V@75<>x|>h6+T)jjXLGBQ!4Y)-pc4pJ4@wK2@9PWxv0pBU3a|d&N%gkGw$*u zjY_??^F(8+TJZ3kPRocW2?Z`u;S1lAGZ&S6Mg)R2sba0RH`mgE zPF85Bd=*x^l={~%qii*6if~cbvK9Cw{hu-xCd*4>Z-aC|O;hdU`2aP1qViS=&O;4XseYB_p*od+1AL7H z!xv-dA_5;?H;|~rR2Eqa9wq;A$(C`Rvx5ueHGKVYBvH6c74>SEx>*rt!8WL2RQ8~T zX%A7SWGOUe87h6*RqA z@2#k$^Kt+DK~ZO~Em$MA$E_^tBNDHhIfaw6uTGvzvmP5(af}bc^+g#e+(-PY#s{h* IUc+Jk0N, YEAR. +# +# #-#-#-#-# CDiskInfo.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/CDiskInfo.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# CPartInfo.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/CPartInfo.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# Global.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/Global.module +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmChoice.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmChoice.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmGO.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmGO.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmLieLow.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmLieLow.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmMain.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmMain.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPackages.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPackages.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPartitioner.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPartitioner.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmPartitions.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmPartitions.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmTools.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmTools.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +# #-#-#-#-# frmWelcome.pot (PACKAGE VERSION) #-#-#-#-# +# /home/joe1962/develop/gambas2/new-installer/frmWelcome.class +# Generated by Gambas compiler +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: .project:1 +#, fuzzy +msgid "VL-gui-installer" +msgstr "-" + +#: InputBox.class:196 +msgid "Enter a value:" +msgstr "" + +#: InputBox.class:202 frmDriveSelect.class:123 frmPartSelect.class:367 +msgid "OK" +msgstr "" + +#: InputBox.class:209 frmDriveSelect.class:130 frmPartSelect.class:374 +msgid "Cancel" +msgstr "" + +#: frmChoice.class:90 +msgid "" +"

You have 3 choices:

\n" +"\n" +"
    \n" +"\t
  • Full-automatic install: Our easiest install yet; just " +"choose this option and click ok and your system will be set up, partitions " +"and all. WARNING: this option will DELETE everything " +"on your hard disk, or offer a choice if there are multiple disks (unless one " +"is empty). You have been WARNED.
  • \n" +"\t
  • Semi-automatic install: This option is much easier with " +"the added GParted; just partition your drives and your system will be set up " +"for you.
  • \n" +"\t
  • Advanced install: For the technically savvy user that " +"must do everything by hand. You can control most aspects of the install.\n" +"
\n" +msgstr "" + +#: frmChoice.class:101 +msgid "Choose install type" +msgstr "Escoja tipo de instalación" + +#: frmChoice.class:116 +msgid "Install types" +msgstr "Tipos de instalación" + +#: frmChoice.class:121 +msgid "Full-automatic" +msgstr "Automática" + +#: frmChoice.class:127 +msgid "Semi-automatic" +msgstr "Semi-automática" + +#: frmChoice.class:133 +msgid "Advanced" +msgstr "Avanzada" + +#: frmConfig.class:112 +msgid "" +"

Configuration:

\n" +"\n" +"Linux Loader boot manager setup:\n" +"
    \n" +"\t
  • Master Boot Record: Install Linux Loader boot manager to the " +"master Boot Record of the bootable hard disk. This is the simplest method " +"and the default action for most common operating systems.
  • \n" +"\t
  • VL Boot sector: Install Linux Loader boot manager to the Boot " +"Sector of the Vector Linux install partition. This will require the " +"following extra steps:\n" +"\t\t
      \n" +"\t\t\t
    • make the Vector Linux partition bootable using a partition manager." +"
    • \n" +"\t\t\t
    • add an option to your default boot manager to boot to LiLo in this " +"partition.
    • \n" +"\t\t
    \n" +"\t
  • \n" +"\t
  • Floppy diskette: Install Linux Loader boot manager to a floopy " +"diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux " +"install by simply booting the diskette.
  • \n" +"\t
  • Do not install: Do not install Linux Loader. Select this if you " +"use another boot manager and know how to set up an option to boot the Vector " +"Linux install from it.
  • \n" +"
\n" +"\n" +"Other configuration:\n" +"
    \n" +"\t
  • Config 1: Other configuration selection 1.
  • \n" +"\t
  • Config 2: Other configuration selection 2.
  • \n" +"
\n" +msgstr "" + +#: frmConfig.class:123 +msgid "Additional configuration" +msgstr "Configuración adicional" + +#: frmConfig.class:138 +msgid "Boot manager" +msgstr "Manejador arranque" + +#: frmConfig.class:145 +msgid "Master Boot Record" +msgstr "Sector arranque" + +#: frmConfig.class:153 +msgid "VL Boot Sector" +msgstr "Partición VL" + +#: frmConfig.class:161 +msgid "Floppy diskette" +msgstr "Disquete" + +#: frmConfig.class:169 +msgid "Do not install" +msgstr "No instalar" + +#: frmConfig.class:176 +msgid "Other configuration" +msgstr "Otras configuraciones" + +#: frmConfig.class:183 +msgid "Config 1" +msgstr "Config 1" + +#: frmConfig.class:191 +msgid "Config 2" +msgstr "Config 2" + +#: frmDriveSelect.class:104 frmPartSelect.class:342 +msgid "Drives" +msgstr "" + +#: frmDriveSelect.class:112 +msgid "Click on a row to select..." +msgstr "" + +#: frmGO.class:83 +msgid "Ready to install!" +msgstr "Listo para instalar!" + +#: frmMain.class:202 +msgid "Welcome!" +msgstr "Bienvenido!" + +#: frmMain.class:211 +msgid "The choice" +msgstr "Opciones" + +#: frmMain.class:220 frmPartSelect.class:382 +msgid "Partitions" +msgstr "Particiones" + +#: frmMain.class:229 +msgid "Packages" +msgstr "Paquetes" + +#: frmMain.class:238 +msgid "Configure" +msgstr "Configurar" + +#: frmMain.class:247 +msgid "Go for it!" +msgstr "Adelante!" + +#: frmMain.class:259 +msgid "Tools" +msgstr "Herramientas" + +#: frmMain.class:270 +msgid "Exit" +msgstr "Salir" + +#: frmPackages.class:97 +msgid "" +"

Package selection strategies:

\n" +"\n" +"Assisted selection: Maintains dependency coherency.\n" +"
    \n" +"\t
  • All packages: Equivalent to a full distro install. All included " +"packages will be installed to your hard disk.
  • \n" +"\t
  • Package groups: Allow selection of what to install by logical " +"package groupings.
  • \n" +"
\n" +"Advanced selection: WARNING: you will " +"be responsible for what you install or not.\n" +"
    \n" +"\t
  • Manual selection: Manual selection from the full list of " +"packages, sorted by categories.
  • \n" +"\t
  • No extra packages: Install just the Vector Linux base distro. " +"You know what you really want and will customise the install yourself.
  • \n" +"
\n" +msgstr "" + +#: frmPackages.class:109 +msgid "Package selection" +msgstr "Selección de paquetes" + +#: frmPackages.class:124 +msgid "Assisted selection" +msgstr "Selección asistida" + +#: frmPackages.class:129 +msgid "All packages" +msgstr "Todos" + +#: frmPackages.class:135 +msgid "By groups" +msgstr "Por grupos" + +#: frmPackages.class:142 +msgid "Advanced selection" +msgstr "Selección avanzada" + +#: frmPackages.class:147 frmPartitions.class:278 +msgid "Manual" +msgstr "Manual" + +#: frmPackages.class:153 +msgid "No extras" +msgstr "Sin extras" + +#: frmPartSelect.class:256 +msgid "Mountpoints" +msgstr "" + +#: frmPartSelect.class:262 +msgid "/" +msgstr "" + +#: frmPartSelect.class:268 +msgid "/home" +msgstr "" + +#: frmPartSelect.class:274 +msgid "/var" +msgstr "" + +#: frmPartSelect.class:280 +msgid "/opt" +msgstr "" + +#: frmPartSelect.class:286 +msgid "/tmp" +msgstr "" + +#: frmPartSelect.class:292 +msgid "/boot" +msgstr "" + +#: frmPartSelect.class:298 +msgid "/usr" +msgstr "" + +#: frmPartSelect.class:304 +msgid "/share" +msgstr "" + +#: frmPartSelect.class:310 +msgid "FileSystem" +msgstr "" + +#: frmPartSelect.class:316 +msgid "xfs" +msgstr "" + +#: frmPartSelect.class:322 +msgid "reiserfs" +msgstr "" + +#: frmPartSelect.class:328 +msgid "ext3" +msgstr "" + +#: frmPartSelect.class:334 +msgid "ext2" +msgstr "" + +#: frmPartSelect.class:350 +msgid "Click on select install drive" +msgstr "" + +#: frmPartSelect.class:356 +msgid "Right-click in Mount or FileSystem to set" +msgstr "" + +#: frmPartSelect.class:390 +msgid "" +"
    \n" +"
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n" +"
  • Right-click on Linux partitions to pick mountpoint
  • \n" +"
  • Left-click on other partitions to edit mountpoint
  • \n" +"
\n" +msgstr "" + +#: frmPartitions.class:229 +msgid "" +"

Available partitioning modes:

\n" +"\n" +"Automatic partitioning: The installer will handle all " +"partition related decisions for you:\n" +"\t
    \n" +"\t\t
  • Full disk: WARNING: this option will " +"DELETE everything on your hard disk, or offer a choice if there are multiple " +"disks (unless one is empty). You have been WARNED.
  • \n" +"\t\t
  • Free space: using available free (unpartitioned) disk space.\n" +"\t
\n" +"Manual partitioning: You have full control of partitioning.\n" +"\t
    \n" +"\t\t
  • Using GParted (the advanced graphical partitioner).
  • \n" +"\t\t
  • Using cfdisk (the traditional partition tool).
  • \n" +"\t
\n" +"Other partitioning:\n" +"\t
    \n" +"\t\t
  • Preset strategies: auto allocates partitions according to " +"most common usage strategy intended for this computer.
  • \n" +"\t\t
  • No partitioning: If you wish to use existing Linux and swap " +"partitions. WARNING: The existing Linux partitions " +"will be OVERWRITTEN. You have been WARNED.
  • \n" +"\t
\n" +msgstr "" + +#: frmPartitions.class:241 +msgid "Partitioning mode" +msgstr "Modo particionamiento" + +#: frmPartitions.class:256 +msgid "Automatic" +msgstr "Automático" + +#: frmPartitions.class:263 +msgid "Full disk" +msgstr "Disco total" + +#: frmPartitions.class:271 +msgid "Free space" +msgstr "Espacio libre" + +#: frmPartitions.class:285 +msgid "GParted" +msgstr "-" + +#: frmPartitions.class:293 +msgid "cfdisk" +msgstr "-" + +#: frmPartitions.class:300 +msgid "Others" +msgstr "Otros" + +#: frmPartitions.class:307 +msgid "Preset strategies" +msgstr "Por estrategias" + +#: frmPartitions.class:315 +msgid "No partitioning" +msgstr "Sin particionar" + +#: frmTools.class:110 +msgid "" +"

Vector Linux repair tools:

\n" +"\n" +"Distro repair tools: \n" +"
    \n" +"\t
  • Repair LILO: Repair Linux Loader boot manager of an " +"existing Vector Linux installation.
  • \n" +"\t
  • Restore packages: Restore original packages from the install " +"CD, to fix a broken upgrade.
  • \n" +"
\n" +"Backup / restore tools: \n" +"
    \n" +"\t
  • Backup /home: Backup your /home directory for safekeeping.\n" +"\t
  • Restore /home: Restore your /home directory from a previous " +"backup. WARNING: The existing /home directory will " +"be OVERWRITTEN during restore. You have been WARNED.
  • \n" +"
\n" +"Miscellaneous tools: \n" +"
    \n" +"\t
  • Tool 5: Tool number 5 to fix something or other.
  • \n" +"\t
  • Tool 6: Tool number 6 to fix something or other.
  • \n" +"
\n" +"\n" +msgstr "" + +#: frmTools.class:122 +msgid "VL Tools" +msgstr "Herramientas VL" + +#: frmTools.class:137 +msgid "Distro repair" +msgstr "Reparación distro" + +#: frmTools.class:144 +msgid "Restore packages" +msgstr "Restaurar paquetes" + +#: frmTools.class:152 +msgid "Repair LILO" +msgstr "Reparar LILO" + +#: frmTools.class:159 +msgid "Backup / restore" +msgstr "Salva / restaura" + +#: frmTools.class:166 +msgid "Backup /home" +msgstr "Salvar /home" + +#: frmTools.class:174 +msgid "Restore /home" +msgstr "Restaurar /home" + +#: frmTools.class:181 +msgid "Miscellaneous" +msgstr "Misceláneas" + +#: frmTools.class:188 +msgid "Tool 5" +msgstr "Tool 5" + +#: frmTools.class:196 +msgid "(Make FHS tree)" +msgstr "" + +#: frmWelcome.class:70 +msgid "" +"

Dear Vector Linux user:

\n" +"\n" +"

We have worked very hard to make this install as quick and easy as " +"possible. We hope you will also like its looks ;-). To install, click on the " +"START button below the VL logo. Use " +"the buttons on the top row to return to a previous stage. If you have " +"already installed VL and just need to use some of the rescue functions, head " +"on over to the Tools button.

\n" +"\n" +"

Distro Credits:

\n" +"\n" +"

The Vector Linux Community members that made this endeavour possible: " +"Vector (Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 " +"(SOHO Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, " +"Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, " +"JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, " +"Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, " +"TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, " +"Yiannis, Zarniwoop.

\n" +"\n" +"

Installer Credits:

\n" +"

Made in Gambas2 by Joe1962 and Uelsk8s.

\n" +"\n" +"

Vector Linux links:

\n" +"\n" +"\n" +"\n" +"\n" +msgstr "" + +#: frmWelcome.class:82 +msgid "Welcome to Vector Linux!" +msgstr "Bienvenido a Vector Linux!" + +#: frmWelcome.class:99 +msgid "START" +msgstr "" + +#~ msgid "Tool 6" +#~ msgstr "Tool 6" diff --git a/.lang/frmChoice.pot b/.lang/frmChoice.pot new file mode 100644 index 0000000..7a0c5da --- /dev/null +++ b/.lang/frmChoice.pot @@ -0,0 +1,40 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmChoice.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmChoice.class:92 +msgid "

You have 3 choices:

\n\n
    \n
  • Full-automatic install: Our easiest install yet; choose this option if you want to use your entire hard disk for VL. Your system will be automatically set up, partitions and all. WARNING: this option will DELETE everything on your hard disk, or offer a choice if there are multiple disks. There will of course be a confirmation dialog in case you selected this option by mistake.
  • \n
  • Semi-automatic install: With this option, you manually partition your drives with gparted, but the rest of the setup will be pretty automatic.
  • \n
  • Advanced install: For the technically savvy user that must do everything by hand. You can control most aspects of the install. However, there will be assisted options available all the way through, so this is a very flexible install.
  • \n
\n" +msgstr "" + +#: frmChoice.class:103 +msgid "Choose install type" +msgstr "" + +#: frmChoice.class:118 +msgid "Install types" +msgstr "" + +#: frmChoice.class:123 +msgid "Full-automatic" +msgstr "" + +#: frmChoice.class:129 +msgid "Semi-automatic" +msgstr "" + +#: frmChoice.class:135 +msgid "Advanced" +msgstr "" + diff --git a/.lang/frmConfig.pot b/.lang/frmConfig.pot new file mode 100644 index 0000000..f35b9f7 --- /dev/null +++ b/.lang/frmConfig.pot @@ -0,0 +1,56 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmConfig.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmConfig.class:114 +msgid "

Configuration:

\n\nLinux Loader boot manager setup:\n
    \n
  • Master Boot Record: Install Linux Loader boot manager to the master Boot Record of the bootable hard disk. This is the simplest method and the default action for most common operating systems.
  • \n
  • VL Boot sector: Install Linux Loader boot manager to the Boot Sector of the Vector Linux install partition. This will require the following extra steps:\n
      \n
    • make the Vector Linux partition bootable using a partition manager.
    • \n
    • add an option to your default boot manager to boot to LiLo in this partition.
    • \n
    \n
  • \n
  • Floppy diskette: Install Linux Loader boot manager to a floopy diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux install by simply booting the diskette.
  • \n
  • Do not install: Do not install Linux Loader. Select this if you use another boot manager and know how to set up an option to boot the Vector Linux install from it.
  • \n
\n\nOther configuration:\n
    \n
  • Config 1: Other configuration selection 1.
  • \n
  • Config 2: Other configuration selection 2.
  • \n
\n" +msgstr "" + +#: frmConfig.class:125 +msgid "Additional configuration" +msgstr "" + +#: frmConfig.class:140 +msgid "Boot manager" +msgstr "" + +#: frmConfig.class:147 +msgid "Master Boot Record" +msgstr "" + +#: frmConfig.class:155 +msgid "VL Boot Sector" +msgstr "" + +#: frmConfig.class:163 +msgid "Floppy diskette" +msgstr "" + +#: frmConfig.class:171 +msgid "Do not install" +msgstr "" + +#: frmConfig.class:178 +msgid "Other configuration" +msgstr "" + +#: frmConfig.class:185 +msgid "Config 1" +msgstr "" + +#: frmConfig.class:193 +msgid "Config 2" +msgstr "" + diff --git a/.lang/frmDriveSelect.pot b/.lang/frmDriveSelect.pot new file mode 100644 index 0000000..6acccbc --- /dev/null +++ b/.lang/frmDriveSelect.pot @@ -0,0 +1,32 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmDriveSelect.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmDriveSelect.class:107 +msgid "Drives" +msgstr "" + +#: frmDriveSelect.class:115 +msgid "Click on a row to select..." +msgstr "" + +#: frmDriveSelect.class:126 +msgid "OK" +msgstr "" + +#: frmDriveSelect.class:133 +msgid "Cancel" +msgstr "" + diff --git a/.lang/frmGO.pot b/.lang/frmGO.pot new file mode 100644 index 0000000..4260d2f --- /dev/null +++ b/.lang/frmGO.pot @@ -0,0 +1,20 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmGO.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmGO.class:85 +msgid "Ready to install!" +msgstr "" + diff --git a/.lang/frmMain.pot b/.lang/frmMain.pot new file mode 100644 index 0000000..6bd2968 --- /dev/null +++ b/.lang/frmMain.pot @@ -0,0 +1,48 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmMain.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmMain.class:207 +msgid "Welcome!" +msgstr "" + +#: frmMain.class:216 +msgid "The choice" +msgstr "" + +#: frmMain.class:225 +msgid "Partitions" +msgstr "" + +#: frmMain.class:234 +msgid "Packages" +msgstr "" + +#: frmMain.class:243 +msgid "Configure" +msgstr "" + +#: frmMain.class:252 +msgid "Go for it!" +msgstr "" + +#: frmMain.class:264 +msgid "Tools" +msgstr "" + +#: frmMain.class:275 +msgid "Exit" +msgstr "" + diff --git a/.lang/frmPackages.pot b/.lang/frmPackages.pot new file mode 100644 index 0000000..4725e4b --- /dev/null +++ b/.lang/frmPackages.pot @@ -0,0 +1,48 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmPackages.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmPackages.class:99 +msgid "

Package selection strategies:

\n\nAssisted selection: Maintains dependency coherency.\n
    \n
  • All packages: Equivalent to a full distro install. All included packages will be installed to your hard disk.
  • \n
  • Package groups: Allow selection of what to install by logical package groupings.
  • \n
\nAdvanced selection: WARNING: you will be responsible for what you install or not.\n
    \n
  • Manual selection: Manual selection from the full list of packages, sorted by categories.
  • \n
  • No extra packages: Install just the Vector Linux base distro. You know what you really want and will customise the install yourself.
  • \n
\n" +msgstr "" + +#: frmPackages.class:111 +msgid "Package selection" +msgstr "" + +#: frmPackages.class:126 +msgid "Assisted selection" +msgstr "" + +#: frmPackages.class:131 +msgid "All packages" +msgstr "" + +#: frmPackages.class:137 +msgid "By groups" +msgstr "" + +#: frmPackages.class:144 +msgid "Advanced selection" +msgstr "" + +#: frmPackages.class:149 +msgid "Manual" +msgstr "" + +#: frmPackages.class:155 +msgid "No extras" +msgstr "" + diff --git a/.lang/frmPartSelect.pot b/.lang/frmPartSelect.pot new file mode 100644 index 0000000..04ed8b3 --- /dev/null +++ b/.lang/frmPartSelect.pot @@ -0,0 +1,100 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmPartSelect.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmPartSelect.class:260 +msgid "Mountpoints" +msgstr "" + +#: frmPartSelect.class:266 +msgid "/" +msgstr "" + +#: frmPartSelect.class:272 +msgid "/home" +msgstr "" + +#: frmPartSelect.class:278 +msgid "/var" +msgstr "" + +#: frmPartSelect.class:284 +msgid "/opt" +msgstr "" + +#: frmPartSelect.class:290 +msgid "/tmp" +msgstr "" + +#: frmPartSelect.class:296 +msgid "/boot" +msgstr "" + +#: frmPartSelect.class:302 +msgid "/usr" +msgstr "" + +#: frmPartSelect.class:308 +msgid "/share" +msgstr "" + +#: frmPartSelect.class:314 +msgid "FileSystem" +msgstr "" + +#: frmPartSelect.class:320 +msgid "xfs" +msgstr "" + +#: frmPartSelect.class:326 +msgid "reiserfs" +msgstr "" + +#: frmPartSelect.class:332 +msgid "ext3" +msgstr "" + +#: frmPartSelect.class:338 +msgid "ext2" +msgstr "" + +#: frmPartSelect.class:346 +msgid "Drives" +msgstr "" + +#: frmPartSelect.class:354 +msgid "Click on select install drive" +msgstr "" + +#: frmPartSelect.class:360 +msgid "Right-click in Mount or FileSystem to set" +msgstr "" + +#: frmPartSelect.class:371 +msgid "OK" +msgstr "" + +#: frmPartSelect.class:378 +msgid "Cancel" +msgstr "" + +#: frmPartSelect.class:386 +msgid "Partitions" +msgstr "" + +#: frmPartSelect.class:394 +msgid "
    \n
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n
  • Right-click on Linux partitions to pick mountpoint
  • \n
  • Left-click on other partitions to edit mountpoint
  • \n
\n" +msgstr "" + diff --git a/.lang/frmPartitioner.pot b/.lang/frmPartitioner.pot new file mode 100644 index 0000000..06a9b43 --- /dev/null +++ b/.lang/frmPartitioner.pot @@ -0,0 +1,16 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmPartitioner.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + diff --git a/.lang/frmPartitions.pot b/.lang/frmPartitions.pot new file mode 100644 index 0000000..1a4077e --- /dev/null +++ b/.lang/frmPartitions.pot @@ -0,0 +1,60 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmPartitions.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmPartitions.class:217 +msgid "

Available partitioning modes:

\n\nAutomatic partitioning: The installer will handle all partition related decisions for you:\n
    \n
  • Full disk: Choose this option if you want to use your entire hard disk for VL. WARNING: this option will DELETE everything on your hard disk, or offer a choice if there are multiple disks. You have been WARNED.
  • \n
  • Free space: using available free (unpartitioned) disk space.
  • \n
\nManual partitioning: You have full control of partitioning.\n
    \n
  • Using gparted (the advanced graphical partitioner).
  • \n
  • Using cfdisk (the traditional partition tool).
  • \n
\nOther partitioning:\n
    \n
  • Preset strategies: auto allocates partitions according to most common usage strategy intended for this computer.
  • \n
  • No partitioning: If you wish to use existing Linux and swap partitions. WARNING: The existing Linux partitions will be OVERWRITTEN. You have been WARNED.
  • \n
\n" +msgstr "" + +#: frmPartitions.class:229 +msgid "Partitioning mode" +msgstr "" + +#: frmPartitions.class:244 +msgid "Automatic" +msgstr "" + +#: frmPartitions.class:251 +msgid "Full disk" +msgstr "" + +#: frmPartitions.class:259 +msgid "Free space" +msgstr "" + +#: frmPartitions.class:266 +msgid "Manual" +msgstr "" + +#: frmPartitions.class:273 +msgid "GParted" +msgstr "" + +#: frmPartitions.class:281 +msgid "cfdisk" +msgstr "" + +#: frmPartitions.class:288 +msgid "Others" +msgstr "" + +#: frmPartitions.class:295 +msgid "Preset strategies" +msgstr "" + +#: frmPartitions.class:303 +msgid "No partitioning" +msgstr "" + diff --git a/.lang/frmTools.pot b/.lang/frmTools.pot new file mode 100644 index 0000000..5d3a12e --- /dev/null +++ b/.lang/frmTools.pot @@ -0,0 +1,60 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmTools.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmTools.class:113 +msgid "

Vector Linux repair tools:

\n\nDistro repair tools:\n
    \n
  • Repair LILO: Repair Linux Loader boot manager of an existing Vector Linux installation.
  • \n
  • Restore packages: Restore original packages from the install CD, to fix a broken upgrade.
  • \n
\nBackup / restore tools:\n
    \n
  • Backup /home: Backup your /home directory for safekeeping.
  • \n
  • Restore /home: Restore your /home directory from a previous backup. WARNING: The existing /home directory will be OVERWRITTEN during restore. You have been WARNED.
  • \n
\nMiscellaneous tools: \n
    \n
  • Tool 5: Tool number 5 to fix something or other.
  • \n
  • Tool 6: Tool number 6 to fix something or other.
  • \n
\n" +msgstr "" + +#: frmTools.class:124 +msgid "VL Tools" +msgstr "" + +#: frmTools.class:139 +msgid "Distro repair" +msgstr "" + +#: frmTools.class:146 +msgid "Restore packages" +msgstr "" + +#: frmTools.class:154 +msgid "Repair LILO" +msgstr "" + +#: frmTools.class:161 +msgid "Backup / restore" +msgstr "" + +#: frmTools.class:168 +msgid "Backup /home" +msgstr "" + +#: frmTools.class:176 +msgid "Restore /home" +msgstr "" + +#: frmTools.class:183 +msgid "Miscellaneous" +msgstr "" + +#: frmTools.class:190 +msgid "Tool 5" +msgstr "" + +#: frmTools.class:198 +msgid "(Make FHS tree)" +msgstr "" + diff --git a/.lang/frmWelcome.pot b/.lang/frmWelcome.pot new file mode 100644 index 0000000..5bead5b --- /dev/null +++ b/.lang/frmWelcome.pot @@ -0,0 +1,28 @@ +# /home/joe1962/develop/2-cvs/vl-gui-installer/frmWelcome.class +# Generated by Gambas compiler + +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n""POT-Creation-Date: 2002-11-01 04:27+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: frmWelcome.class:75 +msgid "

Dear Vector Linux user:

\n\n

\nWe have worked very hard to make this install as quick and easy as possible. We hope you will also like its looks. To install, click on the START button below the VL logo. Use the buttons on the top row to return to a previous stage. If you have already installed VL and just need to use some of the rescue functions, head on over to the Tools button.\n


\n\n

About:

\n\n

\nVector Linux is a small, but full-featured and VERY fast, Linux operating system for x86 PCs, based on one of the original Linux distributions, Slackware. VL is bloat free, easy to install, configure and maintain, with automatic hardware configuration, unique administration tools and easy package management via the Gslapt/slapt-get system.\n


\n\n

Credits:

\n\n

\nInstaller made in Gambas2 by Joe1962 and Uelsk8s, Gambas is the copyright of Benoit Minisini.\n

\n\n

\nThe Vector Linux Community members that made this release possible: Vector (Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 (SOHO Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, Yiannis, Zarniwoop.\n

\n" +msgstr "" + +#: frmWelcome.class:86 +msgid "Welcome to Vector Linux!" +msgstr "" + +#: frmWelcome.class:111 +msgid "START" +msgstr "" + diff --git a/.project b/.project new file mode 100644 index 0000000..aa15af8 --- /dev/null +++ b/.project @@ -0,0 +1,10 @@ +# Gambas Project File 2.0 +Title=VL-gui-installer +Startup=Main +Icon=vl_logo_icon2.png +Version=0.0.166 +Library=gb.qt +Library=gb.qt.ext +TabSize=3 +Translate=1 +ControlPublic=1 diff --git a/.settings b/.settings new file mode 100644 index 0000000..a464495 --- /dev/null +++ b/.settings @@ -0,0 +1,16 @@ +[Breakpoints] +Count=0 + +[FFind] +SearchIn="Project" +CaseSensitive=False +SearchWord=False +SearchComment=False +SearchString=True + +[Watches] +Count=0 + +[YWindows] +Count=0 + diff --git a/Functions.module b/Functions.module new file mode 100644 index 0000000..2516909 --- /dev/null +++ b/Functions.module @@ -0,0 +1,217 @@ +' Gambas module file + +' ### SYSTEMWIDE FUNCTIONS ### + +PUBLIC FUNCTION AutoUnits(capacity AS Long) AS String +' Return drive/partition size in nicer units as "value;unit" string: +DIM temp AS Long + +IF capacity < 1000 THEN ' Bytes: + RETURN Format$(capacity, "###,###,###,###") & ";B" +ELSE IF capacity < 1000000 THEN ' Kilobytes: + RETURN Format$(capacity / 1024, "###,###,###,###") & ";KB" + 'gridDisk[m + 1,units].Text = "KB" +ELSE IF capacity < 1000000000 THEN ' Megabytes: + RETURN Format$(capacity / 1048576, "###,###,###,###") & ";MB" + 'gridDisk[m + 1,units].Text = "MB" +ELSE ' Gigabytes: + RETURN Format$(capacity / 1073741824, "####,###,###,###") & ";GB" +END IF + +' What about Terabytes? LOL. + +END + +PUBLIC FUNCTION getPartType(t AS String) AS String +' Return partition type string from partition type code: + +IF Trim$(t) = "0" THEN RETURN "Empty" +IF Trim$(t) = "1" THEN RETURN "FAT12" +IF Trim$(t) = "2" THEN RETURN "XENIX root" +IF Trim$(t) = "3" THEN RETURN "XENIX usr" +IF Trim$(t) = "4" THEN RETURN "FAT16 <32MB" +IF Trim$(t) = "5" THEN RETURN "Extended" +IF Trim$(t) = "6" THEN RETURN "FAT16" +IF Trim$(t) = "7" THEN RETURN "HPFS/NTFS" +IF Trim$(t) = "8" THEN RETURN "AIX" +IF Trim$(t) = "9" THEN RETURN "AIX bootable" +IF Trim$(t) = "a" THEN RETURN "OS/2 Boot Manager" +IF Trim$(t) = "b" THEN RETURN "W95 FAT32" +IF Trim$(t) = "c" THEN RETURN "W95 FAT32 (LBA)" +IF Trim$(t) = "e" THEN RETURN "W95 FAT16 (LBA)" +IF Trim$(t) = "f" THEN RETURN "W95 Extended (LBA)" +IF Trim$(t) = "10" THEN RETURN "OPUS" +IF Trim$(t) = "11" THEN RETURN "Hidden FAT12" +IF Trim$(t) = "12" THEN RETURN "Compaq diagnostics" +IF Trim$(t) = "14" THEN RETURN "Hidden FAT16 <32MB" +IF Trim$(t) = "16" THEN RETURN "Hidden FAT16" +IF Trim$(t) = "17" THEN RETURN "Hidden HPFS/NTFS" +IF Trim$(t) = "18" THEN RETURN "AST SmartSleep" +IF Trim$(t) = "1b" THEN RETURN "Hidden W95 FAT32" +IF Trim$(t) = "1c" THEN RETURN "Hidden W95 FAT32 (LBA)" +IF Trim$(t) = "1e" THEN RETURN "Hidden W95 FAT16 (LBA)" +IF Trim$(t) = "24" THEN RETURN "NEC DOS" +IF Trim$(t) = "39" THEN RETURN "Plan 9" +IF Trim$(t) = "3c" THEN RETURN "PartitionMagic recovery" +IF Trim$(t) = "40" THEN RETURN "Venix 80286" +IF Trim$(t) = "41" THEN RETURN "PPC PReP Boot" +IF Trim$(t) = "42" THEN RETURN "SFS" +IF Trim$(t) = "4d" THEN RETURN "QNX4.x" +IF Trim$(t) = "4e" THEN RETURN "QNX4.x 2nd part" +IF Trim$(t) = "4f" THEN RETURN "QNX4.x 3rd part" +IF Trim$(t) = "50" THEN RETURN "OnTrack DM" +IF Trim$(t) = "51" THEN RETURN "OnTrack DM6 Aux1" +IF Trim$(t) = "52" THEN RETURN "CP/M" +IF Trim$(t) = "53" THEN RETURN "OnTrack DM6 Aux3" +IF Trim$(t) = "54" THEN RETURN "OnTrack DM6" +IF Trim$(t) = "55" THEN RETURN "EZ-Drive" +IF Trim$(t) = "56" THEN RETURN "Golden Bow" +IF Trim$(t) = "5c" THEN RETURN "Priam Edisk" +IF Trim$(t) = "61" THEN RETURN "SpeedStor" +IF Trim$(t) = "63" THEN RETURN "GNU HURD or SysV" +IF Trim$(t) = "64" THEN RETURN "Novell Netware 286" +IF Trim$(t) = "65" THEN RETURN "Novell Netware 386" +IF Trim$(t) = "70" THEN RETURN "DiskSecure Multi-Boot" +IF Trim$(t) = "75" THEN RETURN "PC/IX" +IF Trim$(t) = "80" THEN RETURN "Old Minix" +IF Trim$(t) = "81" THEN RETURN "Minix / old Linux" +IF Trim$(t) = "82" THEN RETURN "Linux swap" +IF Trim$(t) = "83" THEN RETURN "Linux" +IF Trim$(t) = "84" THEN RETURN "OS/2 hidden C: drive" +IF Trim$(t) = "85" THEN RETURN "Linux extended" +IF Trim$(t) = "86" THEN RETURN "NTFS volume set" +IF Trim$(t) = "87" THEN RETURN "NTFS volume set" +IF Trim$(t) = "88" THEN RETURN "Linux plaintext" +IF Trim$(t) = "8e" THEN RETURN "Linux LVM" +IF Trim$(t) = "93" THEN RETURN "Amoeba" +IF Trim$(t) = "94" THEN RETURN "Amoeba BBT" +IF Trim$(t) = "9f" THEN RETURN "BSD/OS" +IF Trim$(t) = "a0" THEN RETURN "IBM Thinkpad hibernate" +IF Trim$(t) = "a5" THEN RETURN "FreeBSD" +IF Trim$(t) = "a6" THEN RETURN "OpenBSD" +IF Trim$(t) = "a7" THEN RETURN "NeXTSTEP" +IF Trim$(t) = "a8" THEN RETURN "Darwin UFS" +IF Trim$(t) = "a9" THEN RETURN "NetBSD" +IF Trim$(t) = "ab" THEN RETURN "Darwin boot" +IF Trim$(t) = "b7" THEN RETURN "BSDI fs" +IF Trim$(t) = "b8" THEN RETURN "BSDI swap" +IF Trim$(t) = "bb" THEN RETURN "Boot Wizard hidden" +IF Trim$(t) = "be" THEN RETURN "Solaris boot" +IF Trim$(t) = "bf" THEN RETURN "Solaris" +IF Trim$(t) = "c1" THEN RETURN "DRDOS/sec (FAT-12)" +IF Trim$(t) = "c4" THEN RETURN "DRDOS/sec (FAT-16 <32MB)" +IF Trim$(t) = "c6" THEN RETURN "DRDOS/sec (FAT-16)" +IF Trim$(t) = "c7" THEN RETURN "Syrinx" +IF Trim$(t) = "da" THEN RETURN "Non-FS data" +IF Trim$(t) = "db" THEN RETURN "CP/M / CTOS / ..." +IF Trim$(t) = "de" THEN RETURN "Dell Utility" +IF Trim$(t) = "df" THEN RETURN "BootIt" +IF Trim$(t) = "e1" THEN RETURN "DOS access" +IF Trim$(t) = "e3" THEN RETURN "DOS R/O" +IF Trim$(t) = "e4" THEN RETURN "SpeedStor" +IF Trim$(t) = "eb" THEN RETURN "BeOS fs" +IF Trim$(t) = "ee" THEN RETURN "EFI GPT" +IF Trim$(t) = "ef" THEN RETURN "EFI (FAT-12/16/32)" +IF Trim$(t) = "f0" THEN RETURN "Linux/PA-RISC boot" +IF Trim$(t) = "f1" THEN RETURN "SpeedStor" +IF Trim$(t) = "f2" THEN RETURN "DOS secondary" +IF Trim$(t) = "f4" THEN RETURN "SpeedStor" +IF Trim$(t) = "fd" THEN RETURN "Linux raid autodetect" +IF Trim$(t) = "fe" THEN RETURN "LANstep" +IF Trim$(t) = "ff" THEN RETURN "BBT" +'IF Trim$(t) = "" THEN RETURN "" + +RETURN "unknown" + +END + +PUBLIC FUNCTION MakeTree(BaseDir AS String) AS Boolean +' Create a full FHS dir tree within BaseDir: + +MKDIR BaseDir &/ "bin" +MKDIR BaseDir &/ "boot" +MKDIR BaseDir &/ "etc" + MKDIR BaseDir &/ "etc/opt" +MKDIR BaseDir &/ "home" +MKDIR BaseDir &/ "lib" +MKDIR BaseDir &/ "media" + MKDIR BaseDir &/ "media/cdrom" + MKDIR BaseDir &/ "media/floppy" +MKDIR BaseDir &/ "mnt" +MKDIR BaseDir &/ "opt" +MKDIR BaseDir &/ "root" +MKDIR BaseDir &/ "sbin" +MKDIR BaseDir &/ "srv" +MKDIR BaseDir &/ "tmp" +MKDIR BaseDir &/ "usr" + MKDIR BaseDir &/ "usr/bin" + MKDIR BaseDir &/ "usr/include" + MKDIR BaseDir &/ "usr/lib" + MKDIR BaseDir &/ "usr/local" + MKDIR BaseDir &/ "usr/local/bin" + MKDIR BaseDir &/ "usr/local/include" + MKDIR BaseDir &/ "usr/local/lib" + MKDIR BaseDir &/ "usr/local/sbin" + MKDIR BaseDir &/ "usr/local/share" + MKDIR BaseDir &/ "usr/local/share/doc" + MKDIR BaseDir &/ "usr/local/share/info" + MKDIR BaseDir &/ "usr/local/share/locale" + MKDIR BaseDir &/ "usr/local/share/man" + MKDIR BaseDir &/ "usr/local/share/man/man1" + MKDIR BaseDir &/ "usr/local/share/man/man2" + MKDIR BaseDir &/ "usr/local/share/man/man3" + MKDIR BaseDir &/ "usr/local/share/man/man4" + MKDIR BaseDir &/ "usr/local/share/man/man5" + MKDIR BaseDir &/ "usr/local/share/man/man6" + MKDIR BaseDir &/ "usr/local/share/man/man7" + MKDIR BaseDir &/ "usr/local/share/man/man8" + MKDIR BaseDir &/ "usr/local/share/misc" + MKDIR BaseDir &/ "usr/local/share/terminfo" + MKDIR BaseDir &/ "usr/local/share/zoneinfo" + MKDIR BaseDir &/ "usr/local/src" + MKDIR BaseDir &/ "usr/sbin" + MKDIR BaseDir &/ "usr/share" + MKDIR BaseDir &/ "usr/share/doc" + LINK BaseDir &/ "usr/doc" TO BaseDir &/ "usr/share/doc" + LINK BaseDir &/ "usr/local/doc" TO BaseDir &/ "usr/local/share/doc" + MKDIR BaseDir &/ "usr/share/info" + LINK BaseDir &/ "usr/info" TO BaseDir &/ "usr/share/info" + LINK BaseDir &/ "usr/local/info" TO BaseDir &/ "usr/local/share/info" + MKDIR BaseDir &/ "usr/share/locale" + MKDIR BaseDir &/ "usr/share/man" + LINK BaseDir &/ "usr/man" TO BaseDir &/ "usr/share/man" + LINK BaseDir &/ "usr/local/man" TO BaseDir &/ "usr/local/share/man" + MKDIR BaseDir &/ "usr/share/man/man1" + MKDIR BaseDir &/ "usr/share/man/man2" + MKDIR BaseDir &/ "usr/share/man/man3" + MKDIR BaseDir &/ "usr/share/man/man4" + MKDIR BaseDir &/ "usr/share/man/man5" + MKDIR BaseDir &/ "usr/share/man/man6" + MKDIR BaseDir &/ "usr/share/man/man7" + MKDIR BaseDir &/ "usr/share/man/man8" + MKDIR BaseDir &/ "usr/share/misc" + MKDIR BaseDir &/ "usr/share/terminfo" + MKDIR BaseDir &/ "usr/share/zoneinfo" + MKDIR BaseDir &/ "usr/src" +MKDIR BaseDir &/ "var" + MKDIR BaseDir &/ "var/cache" + MKDIR BaseDir &/ "var/lib" + MKDIR BaseDir &/ "var/lib/locate" + MKDIR BaseDir &/ "var/lib/misc" + MKDIR BaseDir &/ "var/local" + MKDIR BaseDir &/ "var/lock" + MKDIR BaseDir &/ "var/log" + MKDIR BaseDir &/ "var/mail" + MKDIR BaseDir &/ "var/opt" + MKDIR BaseDir &/ "var/run" + MKDIR BaseDir &/ "var/spool" + MKDIR BaseDir &/ "var/tmp" + +' Success: +RETURN TRUE + +CATCH ' Failed, usually due to already existing dirs: + RETURN FALSE + +END + diff --git a/Global.class b/Global.class new file mode 100644 index 0000000..fd8c780 --- /dev/null +++ b/Global.class @@ -0,0 +1,64 @@ +' Gambas class file + +' ### GLOBAL DECLARATIONS ### + +' Background colour tests: +'PUBLIC CONST DefaultColour AS Long = &H80AAFF& +'PUBLIC CONST DefaultColour AS Long = &HFFFFFF& +'STATIC PUBLIC CONST DefaultColour AS Long = &H0055FF& +'STATIC PUBLIC CONST LogoBG AS Long = &H257CD2& 'RGB = 37:124:210; HSV = 210:210:210 +'STATIC PUBLIC CONST LogoBG AS Long = &H2D96FF& 'RGB = 45:150:255; HSV = 210:210:255 +STATIC PUBLIC CONST LogoBG AS Long = &H528DC8& 'RGB = 82:141:200; HSV = 210:150:200 +STATIC PUBLIC CONST HTMLBG AS Long = &HDFFFFF& +STATIC PUBLIC CONST TextColour AS Long = &HFFFFFF& + +' Global flags: +STATIC PUBLIC DebugMode AS Boolean +STATIC PUBLIC SimulationMode AS Boolean +STATIC PUBLIC flagStarted AS Boolean 'Start button was pressed. +STATIC PUBLIC prevForm AS Long 'Which frmMain button is active. +STATIC PUBLIC flagBUTTExec AS Boolean 'A button is executing. + +' Global enums: +STATIC PUBLIC enumINSTMODE AS Long 'Install mode. +' 0 = Full-automatic +' 1 = Semi-automatic +' 2 = Advanced +STATIC PUBLIC enumPACKS AS Long 'Package selection mode. +' 0 = All packages +' 1 = By groups +' 2 = Manual +' 3 = No extras +STATIC PUBLIC enumPARTMODE AS Long 'Partitioning mode. +' 0 = Full disk +' 1 = Free space +' 2 = GParted +' 3 = cfdisk +' 4 = Preset strategies +' 5 = No partitioning +STATIC PUBLIC enumLILOMODE AS Long 'Boot manager installation. +' 0 = Master Boot Record +' 1 = VL Boot Sector +' 2 = Floppy diskette +' 3 = Do not install + +' Drive and partition declarations: +STATIC PUBLIC DiskInfo AS NEW Object[] +STATIC PUBLIC PartInfo AS NEW Object[] +STATIC PUBLIC PARTinst AS NEW Object[] +STATIC PUBLIC PARTroot AS String +STATIC PUBLIC PARThome AS String +STATIC PUBLIC PARTvar AS String +STATIC PUBLIC PARTopt AS String +STATIC PUBLIC PARTtmp AS String +STATIC PUBLIC PARTboot AS String +STATIC PUBLIC PARTusr AS String +STATIC PUBLIC PARTshare AS String + +' Process declarations: +STATIC PUBLIC tproc AS Process + +'temp stuff 2 check out: +STATIC PUBLIC installDrive AS String + + diff --git a/InputBox.class b/InputBox.class new file mode 100644 index 0000000..338e52f --- /dev/null +++ b/InputBox.class @@ -0,0 +1,178 @@ +' Gambas class file + +''' +' Name: InputBox +' Author: Timothy Marshal-Nichols +' Company: automationControls +' eMail: timothy@m-nichols.freeserve.co.uk +' Version: 1.0 +' Version Date: Febuuary 2006 +' Version History: +' +' TWEAKED BY JOE1962 +' +''' +' Licence Information +' +' This program is free software; you can redistribute it and/or modify +' it under the terms of the GNU General Public License as published by +' the Free Software Foundation; either version 2 of the License, or +' (at your option) any later version. +' +' This program is distributed in the hope that it will be useful, +' but WITHOUT ANY WARRANTY; without even the implied warranty of +' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +' GNU General Public License for more details. +' +' You should have received a copy of the GNU General Public License +' along with this program; if not, write to the Free Software +' Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +' +' http://www.gnu.org/licenses/gpl.html +' +''' +' Description: +' +' An text input box. A replacement for the Visual Basic InputBox. +' +''' +' Dependencies: +' +' gb - Gambas internal native classes +' gb.qt - Graphical QT toolkit component +' +''' +' External Dependencies: +' +' None +' +''' +' Class Usage: +' +' Call the static method Input +' +' InputBox.Input(Prompt [, Title] [, DefaultValue]) +' +' Prompt +' A string message to display in the dialog box. This may contain HTML formatting. +' +' Title +' Optional title of the dialog box. If not set the the Application Title is used. +' +' DefaultValue +' Optional default string displayed in the text entry area. If not set then the text entry area is empty +' +' Returns +' Returns the string in the text entry area if the OK button is pressed. +' Returns an empty string (“”) if the Cancel button is pressed +' +' Examples: +' +' ' Setting just the prompt. HTML formatting is used for the prompt. +' DIM returnString AS String +' returnString = InputBox.Input("Input String: Bold Value
Another line of text") +' IF returnString THEN +' ' Do something with returnString +' END IF +' +' ' Setting the prompt and dialog title. +' DIM returnString AS String +' returnString = InputBox.Input("Input Value", "Show a new title") +' IF returnString THEN +' ' Do something with returnString +' END IF +' +' ' Setting the prompt and default value. +' DIM returnString AS String +' returnString = InputBox.Input("Input Value", "", "Set a default value") +' IF returnString THEN +' ' Do something with returnString +' END IF +' +''' + +STATIC returnValue AS String + +''' +''' InputBox display method +''' + +STATIC PUBLIC FUNCTION Input(Prompt AS String, OPTIONAL Title AS String, OPTIONAL DefaultValue AS String) AS String + DIM box AS NEW InputBox + ' Set input box prompt + box.Prompt = Prompt + ' Set input box title + IF Title THEN + box.Title = Title + ELSE + box.Title = Application.Title + END IF + ' Set default value + IF DefaultValue THEN + box.DefaultValue = DefaultValue + ELSE + box.DefaultValue = "" + END IF + ' Init return string + returnValue = "" + box.ShowDialog + RETURN returnValue +END + + +''' +''' Properties +''' + +' Read/Write the prompt +PUBLIC PROPERTY Prompt AS String + + +PRIVATE SUB Prompt_Write(Value AS String) + TextLabelPrompt.Text = Value +END + + +PRIVATE FUNCTION Prompt_Read() AS String + RETURN TextLabelPrompt.Text +END + + +' Read/Write the default value +PUBLIC PROPERTY DefaultValue AS String + + +PRIVATE SUB DefaultValue_Write(Value AS String) + ' We use Clear and Insert because this moves the + ' cursor to the end of the default text + TextBox1.Clear() + TextBox1.Insert(Value) + ' select default value string: + TextBox1.SelectAll +END + +PRIVATE FUNCTION DefaultValue_Read() AS String + RETURN TextBox1.Text +END + +PUBLIC SUB ButtonOK_Click() + ' Set the value to be returned by the Input static method + returnValue = TextBox1.Text + ME.Close +END + +PUBLIC SUB ButtonCancel_Click() + ME.Close +END + + +PUBLIC SUB TextBox1_KeyPress() + +' Check for ENTER key and run OK button. + +END + + +''' End of InputBox ''' + + diff --git a/InputBox.form b/InputBox.form new file mode 100644 index 0000000..a3dce57 --- /dev/null +++ b/InputBox.form @@ -0,0 +1,36 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(32.375,12.625,30,12) + 'Move(259,101,240,96) + Font = Font["Luxi Sans"] + Text = ("") + Border = Window.Fixed + SkipTaskbar = True + { TextLabelPrompt TextLabel + MoveScaled(1,0,28,3) + 'Move(8,0,224,24) + Font = Font["Luxi Sans"] + Text = ("Enter a value:") + } + { ButtonOK Button + MoveScaled(1,7,12,4) + 'Move(8,56,96,32) + Font = Font["Luxi Sans"] + Text = ("OK") + Default = True + } + { ButtonCancel Button + MoveScaled(17,7,12,4) + 'Move(136,56,96,32) + Font = Font["Luxi Sans"] + Text = ("Cancel") + Cancel = True + } + { TextBox1 TextBox + MoveScaled(1,3,28,3) + 'Move(8,24,224,24) + Font = Font["Luxi Sans"] + Text = ("") + } +} diff --git a/Main.module b/Main.module new file mode 100644 index 0000000..2af56e5 --- /dev/null +++ b/Main.module @@ -0,0 +1,71 @@ +' Gambas module file + +' ### MAIN SUBROUTINES ### + +PUBLIC SUB Main() + +' Set debugging mode: +'Global.DebugMode = TRUE +Global.DebugMode = FALSE + +' Simulation mode: +IF User.Name <> "root" THEN + Global.SimulationMode = TRUE + message.Warning("You need to be root to run the VL installer" & gb.NewLine & "Switching to simulation mode...") +ELSE + Global.SimulationMode = FALSE +ENDIF + +' Initially no buttons being executed: +Global.flagBUTTExec = FALSE + +' Load the Main window: +frmMain.Load + +' Make always on top: +'frmMain.TopOnly = TRUE + +' Loose the border at 640x480: +'IF Desktop.Width = 640 THEN frmMain.Border = 0 + +' Form size or Full Screen: +'frmMain.FullScreen = TRUE 'Make this default when finished? +'frmMain.Border = window.Resizable +'frmMain.Width = 640 'Only if resizable. +'frmMain.Height = 480 'Only if rsizable. +'frmMain.Width = 800 'Only if resizable. +'frmMain.Height = 600 'Only if resizable. +'frmMain.Width = 1024 'Only if resizable. +'frmMain.Height = 768 'Only if resizable. + +' Center if not using Full Screen: +'frmMain.Center + +' Pre-load all forms for speed (comment out for less memory use): +'frmTools.Reparent(frmMain.pnlContainer, 0, 0) +'frmTools.Hide +'frmGO.Reparent(frmMain.pnlContainer, 0, 0) +'frmGO.Hide +'frmLieLow.Reparent(frmMain.pnlContainer, 0, 0) +'frmLieLow.Hide +'frmPackages.Reparent(frmMain.pnlContainer, 0, 0) +'frmPackages.Hide +'frmPartitioner.Reparent(frmMain.pnlContainer, 0, 0) +'frmPartitioner.Hide +'frmPartitions.Reparent(frmMain.pnlContainer, 0, 0) +'frmPartitions.Hide +'frmChoice.Reparent(frmMain.pnlContainer, 0, 0) +'frmChoice.Hide + +' Fit the Welcome window inside the Main one: +frmWelcome.Reparent(frmMain.pnlContainer, 0, 0) + +' Start off with button 1 on Main window: +Global.prevForm = 1 + +' And get the show on the road....: +frmMain.Show + +END + + diff --git a/Utils.module b/Utils.module new file mode 100644 index 0000000..d074f30 --- /dev/null +++ b/Utils.module @@ -0,0 +1,187 @@ +' Gambas module file + +' ### SYSTEMWIDE SUBROUTINES ### + +PUBLIC SUB DrivePartInfo() +' Get available drives and partitions with fdisk: +DIM sTemp AS String + +Global.DiskInfo.Clear +Global.PartInfo.Clear + +IF Global.SimulationMode = FALSE THEN + EXEC ["fdisk", "-l"] TO sTemp +ELSE + ' 4 debug: + ' English: + sTemp = Chr$(10) + sTemp = sTemp & "Disk /dev/hda: 40,0 GB, 40060403712 bytes" & Chr$(10) + sTemp = sTemp & "255 heads, 63 sectors/track, 4870 cylinders" & Chr$(10) + sTemp = sTemp & "Units = cylinders of 16065 * 512 = 8225280 bytes" & Chr$(10) + sTemp = sTemp & Chr$(10) + sTemp = sTemp & " Device Boot Start End Blocks Id System" & Chr$(10) + sTemp = sTemp & "/dev/hda1 * 1 1044 8385898+ 7 HPFS/NTFS" & Chr$(10) + sTemp = sTemp & "/dev/hda2 1045 1110 530145 82 Linux swap" & Chr$(10) + sTemp = sTemp & "/dev/hda4 1111 4870 30202200 f W95 Ext'd (LBA)" & Chr$(10) + sTemp = sTemp & "/dev/hda5 1111 2415 10482381 83 Linux" & Chr$(10) + sTemp = sTemp & "/dev/hda6 2416 4219 14490598+ c W95 FAT32 (LBA)" & Chr$(10) + sTemp = sTemp & "/dev/hda7 4220 4870 5229126 83 Linux" & Chr$(10) + sTemp = sTemp & Chr$(10) + sTemp = sTemp & "Disk /dev/sda: 258.0 MB, 258473984 bytes" & Chr$(10) + sTemp = sTemp & "8 heads, 62 sectors/track, 1017 cylinders" & Chr$(10) + sTemp = sTemp & "Units = cylinders of 496 * 512 = 253952 bytes" & Chr$(10) + sTemp = sTemp & Chr$(10) + sTemp = sTemp & " Device Boot Start End Blocks Id System" & Chr$(10) + sTemp = sTemp & "/dev/sda1 1 1017 252185 b W95 FAT32" & Chr$(10) + ' Spanish: + 'sTemp = Chr$(10) + 'sTemp = sTemp & "Disco /dev/hda: 40.0 GB, 40060403712 bytes" & Chr$(10) + 'sTemp = sTemp & "255 cabezas, 63 sectores/pista, 4870 cilindros" & Chr$(10) + 'sTemp = sTemp & "Unidades = cilindros de 16065 * 512 = 8225280 bytes" & Chr$(10) + 'sTemp = sTemp & Chr$(10) + 'sTemp = sTemp & "Disposit. Inicio Comienzo Fin Bloques Id Sistema" & Chr$(10) + 'sTemp = sTemp & "/dev/hda1 * 1 1044 8385898+ 7 HPFS/NTFS" & Chr$(10) + 'sTemp = sTemp & "/dev/hda2 1045 1110 530145 82 Linux swap" & Chr$(10) + 'sTemp = sTemp & "/dev/hda4 1111 4870 30202200 f W95 Ext'd (LBA)" & Chr$(10) + 'sTemp = sTemp & "/dev/hda5 1111 2415 10482381 83 Linux" & Chr$(10) + 'sTemp = sTemp & "/dev/hda6 2416 4219 14490598+ c W95 FAT32 (LBA)" & Chr$(10) + 'sTemp = sTemp & "/dev/hda7 4220 4870 5229126 83 Linux" & Chr$(10) + 'sTemp = sTemp & Chr$(10) + 'sTemp = sTemp & "Disco /dev/sda: 258 MB, 258473984 bytes" & Chr$(10) + 'sTemp = sTemp & "8 cabezas, 62 sectores/pista, 1017 cilindros" & Chr$(10) + 'sTemp = sTemp & "Unidades = cilindros de 496 * 512 = 253952 bytes" & Chr$(10) + 'sTemp = sTemp & Chr$(10) + 'sTemp = sTemp & "Disposit. Inicio Comienzo Fin Bloques Id Sistema" & Chr$(10) + 'sTemp = sTemp & "/dev/sda1 1 1017 252185 b W95 FAT32" & Chr$(10) +ENDIF + +' Parse what fdisk has to say: +Parse_fdisk(sTemp) + +END + +PUBLIC SUB Parse_fdisk(sTemp AS String) +' Parse what fdisk has to say: +DIM vDI AS NEW cDiskInfo +DIM vPI AS NEW cPartInfo +DIM arrTemp1 AS NEW String[] +DIM arrTemp2 AS NEW String[] +DIM pos AS Long +DIM n AS Long, m AS Long +DIM pcounter AS Long + +' 4 debug: +IF Global.DebugMode = TRUE THEN + message.Info("Working in Simulation Mode..." & gb.NewLine & sTemp) +ENDIF + +' Parse it: +arrTemp1 = Split(sTemp, Chr$(10)) +FOR n = 0 TO arrTemp1.Max + pos = InStr(arrTemp1[n], "/dev/") + IF pos = 1 ' Parse a partition. + vPI = NEW cPartInfo + arrTemp2 = Split(arrTemp1[n], Space$(1), "", TRUE) + vPI.Device = arrTemp2[0] + IF Trim(arrTemp2[1]) = "*" THEN + vPI.Bootable = TRUE + vPI.StartBlock = arrTemp2[2] + vPI.EndBlock = arrTemp2[3] + IF Right$(arrTemp2[4]) = "+" THEN + vPI.Blocks = Val(Left$(arrTemp2[4], Len(arrTemp2[4]) - 1)) + ELSE + vPI.Blocks = Val(arrTemp2[4]) + ENDIF + vPI.ID = arrTemp2[5] + ELSE + vPI.Bootable = FALSE + vPI.StartBlock = arrTemp2[1] + vPI.EndBlock = arrTemp2[2] + IF Right$(arrTemp2[3]) = "+" THEN + vPI.Blocks = Val(Left$(arrTemp2[3], Len(arrTemp2[3]) - 1)) + ELSE + vPI.Blocks = Val(arrTemp2[3]) + ENDIF + vPI.ID = arrTemp2[4] + ENDIF + Global.PartInfo.Push(vPI) + ELSE IF pos > 1 ' Parse a disk drive. + vDI = NEW cDiskInfo + arrTemp2 = Split(arrTemp1[n], ":,", "", TRUE) + vDI.Device = Trim$(Mid$(arrTemp2[0], InStr(arrTemp2[0], "/dev"))) + IF Val(arrTemp2[2]) > 0 THEN + vDI.Bytes = Val(arrTemp2[2]) + ELSE + vDI.Bytes = Val(arrTemp2[3]) + ENDIF + Global.DiskInfo.Push(vDI) + ELSE ' Nothing. + END IF +NEXT + +' 4 debug: +IF Global.DebugMode = TRUE THEN + FOR n = 0 TO Global.DiskInfo.Max + frmGo.TextLabel1.Text &= Global.DiskInfo[n].Device & ": " & Global.DiskInfo[n].Bytes & " bytes" & "
" + NEXT + frmGo.TextLabel1.Text &= "
" + FOR n = 0 TO Global.PartInfo.Max + frmGo.TextLabel1.Text &= Global.PartInfo[n].Device & "
" + frmGo.TextLabel1.Text &= "Bootable= " & Str(Global.PartInfo[n].Bootable) & "
" + frmGo.TextLabel1.Text &= "Start block= " & Global.PartInfo[n].StartBlock & "
" + frmGo.TextLabel1.Text &= "End block= " & Global.PartInfo[n].EndBlock & "
" + frmGo.TextLabel1.Text &= "Num. Blocks= " & Global.PartInfo[n].Blocks & "
" + frmGo.TextLabel1.Text &= "Part. ID= " & Global.PartInfo[n].ID & ", " & Functions.getPartType(Global.PartInfo[n].ID) & "
" + frmGo.TextLabel1.Text &= "
" + NEXT +ENDIF + +END + + +PUBLIC SUB BUTTdisable() +' Disable all frmMain buttons: + +' Save state first: +BUTTsave + +' Then disable: +frmMain.Button1.Enabled = FALSE +frmMain.Button2.Enabled = FALSE +frmMain.Button3.Enabled = FALSE +frmMain.Button4.Enabled = FALSE +frmMain.Button5.Enabled = FALSE +frmMain.Button6.Enabled = FALSE +frmMain.Button7.Enabled = FALSE +frmMain.ButExit.Enabled = FALSE + +END + +PUBLIC SUB BUTTsave() +' Save state of all frmMain buttons: + +frmMain.Button1.Tag = frmMain.Button1.Enabled +frmMain.Button2.Tag = frmMain.Button2.Enabled +frmMain.Button3.Tag = frmMain.Button3.Enabled +frmMain.Button4.Tag = frmMain.Button4.Enabled +frmMain.Button5.Tag = frmMain.Button5.Enabled +frmMain.Button6.Tag = frmMain.Button6.Enabled +frmMain.Button7.Tag = frmMain.Button7.Enabled +frmMain.ButExit.Tag = frmMain.ButExit.Enabled + +END + +PUBLIC SUB BUTTrest() +' Restore saved state of all frmMain buttons: + +frmMain.Button1.Enabled = frmMain.Button1.Tag +frmMain.Button2.Enabled = frmMain.Button2.Tag +frmMain.Button3.Enabled = frmMain.Button3.Tag +frmMain.Button4.Enabled = frmMain.Button4.Tag +frmMain.Button5.Enabled = frmMain.Button5.Tag +frmMain.Button6.Enabled = frmMain.Button6.Tag +frmMain.Button7.Enabled = frmMain.Button7.Tag +frmMain.ButExit.Enabled = frmMain.ButExit.Tag + +END + diff --git a/VL-logo-shine.png b/VL-logo-shine.png new file mode 100644 index 0000000000000000000000000000000000000000..c489c488be88bf3d3a6a068ed82dbccb8947d3c5 GIT binary patch literal 55154 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�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 Hu0mjf^NCB< literal 0 HcmV?d00001 diff --git a/VL.png b/VL.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a2042f3a448bdd68920503797ef166c0e6f8ae GIT binary patch literal 22719 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%0A+(Q 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 1 THEN frmDriveSelect.ShowModal + +frmMain.Button2.Enabled = FALSE ' Disable Choices. +frmMain.Button6.Enabled = TRUE ' Enable Go for it!. +frmMain.Button6_Click ' Advance to Go for it!. + +END + +PUBLIC SUB Button2_Click() ' Semi-automatic. + +Global.enumINSTMODE = 1 ' Semi-automatic install mode. +frmMain.Button2.Enabled = FALSE ' Disable Choices. +frmMain.Button3.Enabled = TRUE ' Enable Partitions. +frmMain.Button3_Click ' Advance to Partitions. + +END + +PUBLIC SUB Button3_Click() ' Advanced. + +Global.enumINSTMODE = 1 ' Advanced install mode. +'frmMain.Button2.Enabled = FALSE ' Disable Choices +frmMain.Button3.Enabled = TRUE ' Enable Partitions +frmMain.Button3_Click ' Advance to Partitions + +END + diff --git a/frmChoice.form b/frmChoice.form new file mode 100644 index 0000000..894e8ba --- /dev/null +++ b/frmChoice.form @@ -0,0 +1,73 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(43.125,3.375,101.625,65.125) + 'Move(345,27,813,521) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(0,0,60,61) + 'Move(0,0,480,488) + Font = Font["Luxi Sans,12"] + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,73,52) + 'Move(0,0,584,416) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

You have 3 choices:

\n\n
    \n
  • Full-automatic install: Our easiest install yet; choose this option if you want to use your entire hard disk for VL. Your system will be automatically set up, partitions and all. WARNING: this option will DELETE everything on your hard disk, or offer a choice if there are multiple disks. There will of course be a confirmation dialog in case you selected this option by mistake.
  • \n
  • Semi-automatic install: With this option, you manually partition your drives with gparted, but the rest of the setup will be pretty automatic.
  • \n
  • Advanced install: For the technically savvy user that must do everything by hand. You can control most aspects of the install. However, there will be assisted options available all the way through, so this is a very flexible install.
  • \n
\n") + } + } + { VBox1 VBox + MoveScaled(62,2,29,61) + 'Move(496,16,232,488) + { lblSubTitle Label + MoveScaled(0,0,32,4) + 'Move(0,0,256,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Choose install type") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,50) + 'Move(0,32,232,400) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + { Frame2 Frame + MoveScaled(2,1,25,21) + 'Move(16,8,200,168) + Font = Font["Luxi Sans,14"] + Text = ("Install types") + { Button1 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Text = ("Full-automatic") + } + { Button2 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Text = ("Semi-automatic") + } + { Button3 Button + MoveScaled(1,15,23,5) + 'Move(8,120,184,40) + Font = Font["Luxi Sans,14"] + Text = ("Advanced") + } + } + } + } +} diff --git a/frmConfig.class b/frmConfig.class new file mode 100644 index 0000000..6a4f8cd --- /dev/null +++ b/frmConfig.class @@ -0,0 +1,73 @@ +' Gambas class file + +' ### ADDITIONAL CONFIGURATION FORM ### + +PUBLIC SUB Form_Show() + +' set button focus: +frmMain.Button5.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +TextLabel1.Adjust + +END + +PUBLIC SUB Button1_Click() 'Master Boot Record: + +Global.enumLILOMODE = 0 + +END + +PUBLIC SUB Button2_Click() 'VL Boot Sector: + +Global.enumLILOMODE = 1 + +END + +PUBLIC SUB Button3_Click() 'Floppy diskette: + +Global.enumLILOMODE = 2 + +END + +PUBLIC SUB Button4_Click() 'Do not install: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +Global.enumLILOMODE = 3 + +frmMain.Button5.Enabled = FALSE 'Disable "Configure". +frmMain.Button6.Enabled = TRUE 'Enable "Go for it!". +frmMain.Button6_Click 'Advance to "Go for it!". + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button5_Click() 'Config 1: + + + +END + +PUBLIC SUB Button6_Click() 'Config 2: + + + +END + diff --git a/frmConfig.form b/frmConfig.form new file mode 100644 index 0000000..6a96670 --- /dev/null +++ b/frmConfig.form @@ -0,0 +1,109 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(21.625,26.125,95,64) + 'Move(173,209,760,512) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(0,0,69,59) + 'Move(0,0,552,472) + Font = Font["Luxi Sans,12"] + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,72,50) + 'Move(0,0,576,400) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

Configuration:

\n\nLinux Loader boot manager setup:\n
    \n
  • Master Boot Record: Install Linux Loader boot manager to the master Boot Record of the bootable hard disk. This is the simplest method and the default action for most common operating systems.
  • \n
  • VL Boot sector: Install Linux Loader boot manager to the Boot Sector of the Vector Linux install partition. This will require the following extra steps:\n
      \n
    • make the Vector Linux partition bootable using a partition manager.
    • \n
    • add an option to your default boot manager to boot to LiLo in this partition.
    • \n
    \n
  • \n
  • Floppy diskette: Install Linux Loader boot manager to a floopy diskette in /dev/fd0 (drive A:). You can then boot to the Vector Linux install by simply booting the diskette.
  • \n
  • Do not install: Do not install Linux Loader. Select this if you use another boot manager and know how to set up an option to boot the Vector Linux install from it.
  • \n
\n\nOther configuration:\n
    \n
  • Config 1: Other configuration selection 1.
  • \n
  • Config 2: Other configuration selection 2.
  • \n
\n") + } + } + { VBox1 VBox + MoveScaled(64,2,29,61) + 'Move(512,16,232,488) + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Additional configuration") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,49.625) + 'Move(0,32,232,397) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + { Frame1 Frame + MoveScaled(2,1,25,27) + 'Move(16,8,200,216) + Font = Font["Luxi Sans,14"] + Text = ("Boot manager") + { Button1 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Master Boot Record") + } + { Button2 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("VL Boot Sector") + } + { Button3 Button + MoveScaled(1,15,23,5) + 'Move(8,120,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Floppy diskette") + } + { Button4 Button + MoveScaled(1,21,23,5) + 'Move(8,168,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Do not install") + } + } + { Frame2 Frame + MoveScaled(2,28,25,15) + 'Move(16,224,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Other configuration") + { Button5 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Config 1") + } + { Button6 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Config 2") + } + } + } + } +} diff --git a/frmDriveSelect.class b/frmDriveSelect.class new file mode 100644 index 0000000..19db456 --- /dev/null +++ b/frmDriveSelect.class @@ -0,0 +1,86 @@ +' Gambas class file + +' ### DRIVES WINDOW ### + +PRIVATE MaxDisks AS Long +PRIVATE selectedDisk AS String + +PUBLIC SUB Form_Open() +DIM arrTemp AS NEW String[] +DIM n AS Byte +DIM m AS Byte + +'Center form on screen: +ME.Center +ME.Caption = "Install Drive Selection" + +MaxDisks = Global.DiskInfo.Count + +'Setup gridDisk: +gridDisk.Columns.Count = 4 +'gridDisk.Rows.Count = MaxDisks +gridDisk.Rows.Count = 32 +gridDisk.Columns[0].Width = 0.4 * gridDisk.ClientWidth +gridDisk.Columns[1].Width = 0.25 * gridDisk.ClientWidth +gridDisk.Columns[2].Width = 0.2 * gridDisk.ClientWidth +gridDisk.Columns[3].Width = 0.15 * gridDisk.ClientWidth + +'Center gridDisk titles alignment: +FOR n = 0 TO gridDisk.Columns.Count - 1 + gridDisk[0, n].Alignment = Align.Center +NEXT + +'Setup gridDisk titles: +gridDisk[0, 0].Text = "Drive" +gridDisk[0, 1].Text = "Size" +gridDisk[0, 2].Text = "Units" +gridDisk[0, 3].Text = "Sel." + +'Set gridDisk cell alignment; left for text, right for numbers: +FOR m = 1 TO MaxDisks + gridDisk[m, 0].Alignment = Align.Left + gridDisk.Rows[m].Height = 20 + gridDisk[m, 0].Text = Global.DiskInfo[m - 1].Device + gridDisk[m, 1].Alignment = Align.Right + gridDisk[m, 1].Text = Global.DiskInfo[m - 1].Bytes + arrTemp = Split(Functions.AutoUnits(Global.DiskInfo[m - 1].Bytes), ";", "", TRUE) + gridDisk[m, 1].Text = arrTemp[0] + gridDisk[m, 2].Alignment = Align.Left + gridDisk[m, 2].Text = arrTemp[1] + gridDisk[m, 3].Alignment = Align.Center +NEXT + +END + +PUBLIC SUB gridDisk_Click() +DIM arrTemp AS NEW String[] +DIM n AS Long +DIM m AS Long + +IF gridDisk.Row = 0 OR gridDisk[gridDisk.Row, 2].Text = "" THEN +ELSE + FOR n = 1 TO gridDisk.Rows.Count - 1 + gridDisk[n, 3].Text = "" + NEXT + gridDisk[gridDisk.Row, 3].Text = "+++" + selectedDisk = gridDisk[gridDisk.Row, 0].Text +ENDIF + +END + +PUBLIC SUB btnOK_Click() + +IF selectedDisk = "" THEN selectedDisk = gridDisk[1, 0].Text +Global.installDrive = selectedDisk +IF Global.DebugMode = TRUE THEN message.Info(Global.installDrive) + +ME.Close(TRUE) + +END + +PUBLIC SUB btnCancel_Click() + +ME.Close() + +END + diff --git a/frmDriveSelect.form b/frmDriveSelect.form new file mode 100644 index 0000000..2059224 --- /dev/null +++ b/frmDriveSelect.form @@ -0,0 +1,43 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(39.625,12.625,35,49) + 'Move(317,101,280,392) + Font = Font["Luxi Sans"] + Text = ("") + Border = Window.Fixed + { Label1 Label + MoveScaled(0,0,35,3) + 'Move(0,0,280,24) + Font = Font["Luxi Sans,Bold,12"] + Text = ("Drives") + Alignment = Align.Center + Border = Border.Raised + } + { gridDisk GridView + MoveScaled(0,3,35,40) + 'Move(0,24,280,320) + Font = Font["Luxi Sans,12"] + ToolTip = ("Click on a row to select...") + } + { Panel1 Panel + MoveScaled(0,43,35,6) + 'Move(0,344,280,48) + Font = Font["Luxi Sans"] + Border = Border.Etched + { btnOK Button + MoveScaled(2,1,14,4) + 'Move(16,8,112,32) + Font = Font["Luxi Sans"] + Text = ("OK") + Default = True + } + { btnCancel Button + MoveScaled(19,1,14,4) + 'Move(152,8,112,32) + Font = Font["Luxi Sans"] + Text = ("Cancel") + Cancel = True + } + } +} diff --git a/frmGO.class b/frmGO.class new file mode 100644 index 0000000..2ecf7f3 --- /dev/null +++ b/frmGO.class @@ -0,0 +1,27 @@ +' Gambas class file + +' ### READY TO INSTALL! FORM ### + +PUBLIC SUB Form_Show() + +' set button focus: +frmMain.Button6.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +TextLabel1.Adjust + +' 4 debug: +ProgressBar1.Value = 0.31 + +END + diff --git a/frmGO.form b/frmGO.form new file mode 100644 index 0000000..f4d769e --- /dev/null +++ b/frmGO.form @@ -0,0 +1,61 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(29.125,25.375,90.625,64.375) + 'Move(233,203,725,515) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { VBox2 VBox + MoveScaled(1,2,57,60) + 'Move(8,16,456,480) + Font = Font["Luxi Sans"] + Expand = True + { ScrollView1 ScrollView + MoveScaled(2,2,58,50) + 'Move(16,16,464,400) + Font = Font["Luxi Sans,16"] + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,58,39) + 'Move(0,0,464,312) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("") + } + } + { ProgressBar1 ProgressBar + MoveScaled(3,55,47,4) + 'Move(24,440,376,32) + Font = Font["Luxi Sans"] + } + } + { VBox1 VBox + MoveScaled(61,2,29,61) + 'Move(488,16,232,488) + Font = Font["Luxi Sans"] + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Ready to install!") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,49.625) + 'Move(0,32,232,397) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + } + } +} diff --git a/frmMain.class b/frmMain.class new file mode 100644 index 0000000..bbe207b --- /dev/null +++ b/frmMain.class @@ -0,0 +1,159 @@ +' Gambas class file + +' ### MAIN WINDOW ### + +PUBLIC flagStep AS Byte + +PUBLIC SUB Form_Open() + +' Can't set these here or title bitmap is duplicated on resize! +'picTitle.BackColor = Global.DefaultBackground +'picSlogan.BackColor = Global.DefaultBackground + +'frmWelcome.Show + +flagStep = 1 +' Button1.Expand = TRUE +' Button2.Expand = TRUE +' Button3.Expand = TRUE +' Button4.Expand = TRUE +' Button5.Expand = TRUE +' Button6.Expand = TRUE +' Button7.Expand = TRUE +' butExit.Expand = TRUE + +' Button2.Enabled = TRUE +' Button3.Enabled = FALSE +' Button4.Enabled = FALSE +' Button5.Enabled = FALSE +' Button6.Enabled = FALSE +' Button7.Enabled = FALSE +' butExit.Enabled = TRUE + +END + +PUBLIC SUB Form_Resize() +DIM x AS Integer, y AS Integer + +picTitle.Move(0, 0, ME.ClientWidth, picTitle.Picture.Height + 8) +picSlogan.Move(0, ME.ClientHeight - picSlogan.Picture.Height - 10, ME.ClientWidth, picSlogan.Picture.Height + 10) +pnlSteps.Move(0, picTitle.Height, pnlSteps.Parent.ClientWidth, pnlSteps.Height) +pnlContainer.Move(0, pnlSteps.Y + pnlSteps.Height, ME.ClientWidth, picSlogan.Y - pnlContainer.Y) + +END + +PUBLIC SUB butExit_Click() + +ME.Close + +END + +PUBLIC SUB Button1_Click() + +IF Global.prevForm <> 1 THEN + CloseForm(Global.prevForm) + frmWelcome.Reparent(frmMain.pnlContainer, 0, 0) + frmWelcome.Show + Global.prevForm = 1 +ENDIF + +END + +PUBLIC SUB Button2_Click() + +IF Global.prevForm <> 2 THEN + CloseForm(Global.prevForm) + frmChoice.Reparent(frmMain.pnlContainer, 0, 0) + frmChoice.Show + Global.prevForm = 2 +ENDIF + +END + +PUBLIC SUB Button3_Click() + +IF Global.prevForm <> 3 THEN + CloseForm(Global.prevForm) + frmPartitions.Reparent(frmMain.pnlContainer, 0, 0) + frmPartitions.Show + Global.prevForm = 3 +ENDIF + +END + +PUBLIC SUB Button4_Click() + +IF Global.prevForm <> 4 THEN + CloseForm(Global.prevForm) + frmPackages.Reparent(frmMain.pnlContainer, 0, 0) + frmPackages.Show + Global.prevForm = 4 +ENDIF + +END + +PUBLIC SUB Button5_Click() + +IF Global.prevForm <> 5 THEN + CloseForm(Global.prevForm) + frmConfig.Reparent(frmMain.pnlContainer, 0, 0) + frmConfig.Show + Global.prevForm = 5 +ENDIF + +END + +PUBLIC SUB Button6_Click() + +IF Global.prevForm <> 6 THEN + CloseForm(Global.prevForm) + frmGO.Reparent(frmMain.pnlContainer, 0, 0) + frmGO.Show + Global.prevForm = 6 +ENDIF + +END + +PUBLIC SUB Button7_Click() + +IF Global.prevForm <> 7 THEN + CloseForm(Global.prevForm) + frmTools.Reparent(frmMain.pnlContainer, 0, 0) + frmTools.Show + Global.prevForm = 7 +ENDIF + +END + +PUBLIC SUB CloseForm(frmNum AS Long) +' Close previous form to save mem. + +SELECT CASE frmNum +CASE 1 + frmWelcome.Close +CASE 2 + frmChoice.Close +CASE 3 + frmPartitions.Close +CASE 4 + frmPackages.Close +CASE 5 + frmConfig.Close +CASE 6 + frmGO.Close +CASE 7 + frmTools.Close +END SELECT + +END + +PUBLIC SUB Form_Close() +DIM hWindow AS Window + +FOR EACH hWindow IN Windows + hWindow.Close +NEXT + +END + + diff --git a/frmMain.form b/frmMain.form new file mode 100644 index 0000000..b64e502 --- /dev/null +++ b/frmMain.form @@ -0,0 +1,118 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(0,37.125,91.375,68.375) + 'Move(0,297,731,547) + Font = Font["Luxi Sans"] + Text = ("") + Icon = Picture["installer3.png"] + Border = Window.Fixed + FullScreen = True + Arrangement = Arrange.Vertical + { picTitle PictureBox + MoveScaled(0,0,101,8) + 'Move(0,0,808,64) + Background = &H528DC8& + Picture = Picture["VL.png"] + Alignment = Align.Center + Border = Border.Etched + } + { pnlSteps Panel + MoveScaled(1,9,85,4.375) + 'Move(8,72,680,35) + Arrangement = Arrange.Horizontal + Border = Border.Etched + { Button1 Button + MoveScaled(0,0,9,4) + 'Move(0,0,72,32) + Font = Font["Luxi Sans,12"] + Tag = "1" + Expand = True + Text = ("Welcome!") + } + { Button2 Button + MoveScaled(9,0,9,4) + 'Move(72,0,72,32) + Enabled = False + Font = Font["Luxi Sans,12"] + Tag = "2" + Expand = True + Text = ("The choice") + } + { Button3 Button + MoveScaled(18,0,9,4) + 'Move(144,0,72,32) + Enabled = False + Font = Font["Luxi Sans,12"] + Tag = "3" + Expand = True + Text = ("Partitions") + } + { Button4 Button + MoveScaled(27,0,9,4) + 'Move(216,0,72,32) + Enabled = False + Font = Font["Luxi Sans,12"] + Tag = "4" + Expand = True + Text = ("Packages") + } + { Button5 Button + MoveScaled(36,0,9,4) + 'Move(288,0,72,32) + Enabled = False + Font = Font["Luxi Sans,12"] + Tag = "5" + Expand = True + Text = ("Configure") + } + { Button6 Button + MoveScaled(45,0,9,4) + 'Move(360,0,72,32) + Enabled = False + Font = Font["Luxi Sans,12"] + Tag = "6" + Expand = True + Text = ("Go for it!") + } + { Separator1 Separator + MoveScaled(54,0,1.125,4) + 'Move(432,0,9,32) + } + { Button7 Button + MoveScaled(55,0,9,4) + 'Move(440,0,72,32) + Font = Font["Luxi Sans,12"] + Tag = "7" + Expand = True + Text = ("Tools") + } + { Separator2 Separator + MoveScaled(64,0,1.125,4) + 'Move(512,0,9,32) + } + { butExit Button + MoveScaled(65,0,8.375,4) + 'Move(520,0,67,32) + Font = Font["Luxi Sans,12"] + Expand = True + Text = ("Exit") + } + } + { pnlContainer Panel + MoveScaled(6,16,70,33) + 'Move(48,128,560,264) + Font = Font["Luxi Sans"] + Expand = True + Arrangement = Arrange.Fill + Border = Border.Etched + } + { picSlogan PictureBox + MoveScaled(0,52,82,5) + 'Move(0,416,656,40) + Background = &H528DC8& + Picture = Picture["slogan.png"] + Alignment = Align.Center + Border = Border.Etched + } +} diff --git a/frmPackages.class b/frmPackages.class new file mode 100644 index 0000000..091524e --- /dev/null +++ b/frmPackages.class @@ -0,0 +1,61 @@ +' Gambas class file + +' ### PACKAGE SELECTION FORM ### + +PUBLIC SUB Form_Show() + +' set button focus: +frmMain.Button4.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +TextLabel1.Adjust + +END + +PUBLIC SUB Button1_Click() 'All packages: + +Global.enumPACKS = 0 +frmMain.Button4.Enabled = FALSE +frmMain.Button5.Enabled = TRUE +frmMain.Button5_Click + +END + +PUBLIC SUB Button2_Click() 'By groups: + +Global.enumPACKS = 1 +frmMain.Button4.Enabled = FALSE +frmMain.Button5.Enabled = TRUE +frmMain.Button5_Click + +END + +PUBLIC SUB Button3_Click() 'Manual: + +Global.enumPACKS = 2 +'frmMain.Button4.Enabled = FALSE +'frmMain.Button5.Enabled = TRUE +'frmMain.Button5_Click + +END + +PUBLIC SUB Button4_Click() 'No extras: + +Global.enumPACKS = 3 +frmMain.Button4.Enabled = FALSE +frmMain.Button5.Enabled = TRUE +frmMain.Button5_Click + +END + + diff --git a/frmPackages.form b/frmPackages.form new file mode 100644 index 0000000..5318cd7 --- /dev/null +++ b/frmPackages.form @@ -0,0 +1,85 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(43.125,3.375,101.625,64.125) + 'Move(345,27,813,513) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(1,2,58,55) + 'Move(8,16,464,440) + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,62,50) + 'Move(0,0,496,400) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

Package selection strategies:

\n\nAssisted selection: Maintains dependency coherency.\n
    \n
  • All packages: Equivalent to a full distro install. All included packages will be installed to your hard disk.
  • \n
  • Package groups: Allow selection of what to install by logical package groupings.
  • \n
\nAdvanced selection: WARNING: you will be responsible for what you install or not.\n
    \n
  • Manual selection: Manual selection from the full list of packages, sorted by categories.
  • \n
  • No extra packages: Install just the Vector Linux base distro. You know what you really want and will customise the install yourself.
  • \n
\n") + } + } + { VBox1 VBox + MoveScaled(62,1,29,61) + 'Move(496,8,232,488) + Font = Font["Luxi Sans"] + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Package selection") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,49.625) + 'Move(0,32,232,397) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + { Frame1 Frame + MoveScaled(2,1,25,15) + 'Move(16,8,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Assisted selection") + { Button1 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Text = ("All packages") + } + { Button2 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Text = ("By groups") + } + } + { Frame2 Frame + MoveScaled(2,16,25,15) + 'Move(16,128,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Advanced selection") + { Button3 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Text = ("Manual") + } + { Button4 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Text = ("No extras") + } + } + } + } +} diff --git a/frmPartSelect.class b/frmPartSelect.class new file mode 100644 index 0000000..85a1ea1 --- /dev/null +++ b/frmPartSelect.class @@ -0,0 +1,223 @@ +' Gambas class file + +' ### PARTITION SELECTION WINDOW ### + +PRIVATE MaxDisks AS Long +PRIVATE MaxPartions AS Long +PRIVATE selectedDisk AS String + +PUBLIC SUB Form_Open() +DIM arrTemp AS NEW String[] +DIM n AS Byte +DIM m AS Byte + +'Center form on screen: +ME.Center +ME.Caption = "Partition Selection" + +MaxDisks = Global.DiskInfo.Count +MaxPartions = Global.PartInfo.Count +Global.PARTinst.Clear + +'Setup gridDisk: +gridDisk.Columns.Count = 4 +'gridDisk.Rows.Count = MaxDisks +gridDisk.Rows.Count = 32 +gridDisk.Columns[0].Width = 0.4 * gridDisk.ClientWidth +gridDisk.Columns[1].Width = 0.25 * gridDisk.ClientWidth +gridDisk.Columns[2].Width = 0.2 * gridDisk.ClientWidth +gridDisk.Columns[3].Width = 0.15 * gridDisk.ClientWidth + +'Center gridDisk titles alignment: +FOR n = 0 TO gridDisk.Columns.Count - 1 + gridDisk[0, n].Alignment = Align.Center +NEXT + +'Setup gridDisk titles: +gridDisk[0, 0].Text = "Drive" +gridDisk[0, 1].Text = "Size" +gridDisk[0, 2].Text = "Units" +gridDisk[0, 3].Text = "Sel." + +'Set gridDisk cell alignment; left for text, right for numbers, fill in gridDisk data: +FOR m = 1 TO MaxDisks + gridDisk[m, 0].Alignment = Align.Left + gridDisk.Rows[m].Height = 20 + gridDisk[m, 0].Text = Global.DiskInfo[m - 1].Device + gridDisk[m, 1].Alignment = Align.Right + gridDisk[m, 1].Text = Global.DiskInfo[m - 1].Bytes + arrTemp = Split(Functions.AutoUnits(Global.DiskInfo[m - 1].Bytes), ";", "", TRUE) + gridDisk[m, 1].Text = arrTemp[0] + gridDisk[m, 2].Alignment = Align.Left + gridDisk[m, 2].Text = arrTemp[1] + gridDisk[m, 3].Alignment = Align.Center +NEXT + +'Setup gridPart: +gridPart.Columns.Count = 7 +'gridPart.Rows.Count = MaxPartions +gridPart.Rows.Count = 256 +gridPart.Columns[0].Width = 0.15 * gridPart.ClientWidth +gridPart.Columns[1].Width = 0.1 * gridPart.ClientWidth +gridPart.Columns[2].Width = 0.075 * gridPart.ClientWidth +gridPart.Columns[3].Width = 0.055 * gridPart.ClientWidth +gridPart.Columns[4].Width = 0.3 * gridPart.ClientWidth +gridPart.Columns[5].Width = 0.195 * gridPart.ClientWidth +gridPart.Columns[6].Width = 0.125 * gridPart.ClientWidth + +'Center gridPart titles alignment: +FOR n = 0 TO gridPart.Columns.Count - 1 + gridPart[0, n].Alignment = Align.Center +NEXT + +'Setup gridPart titles: +gridPart[0, 0].Text = "Partition" +gridPart[0, 1].Text = "Size" +gridPart[0, 2].Text = "Units" +gridPart[0, 3].Text = "Boot" +gridPart[0, 4].Text = "Type" +gridPart[0, 5].Text = "Mount" +gridPart[0, 6].Text = "Filesystem" + +'Set gridPart cell alignment; left for text, right for numbers: +FOR m = 1 TO gridPart.Rows.Count - 1 + gridPart.Rows[m].Height = 20 + gridPart[m, 0].Alignment = Align.Left + gridPart[m, 1].Alignment = Align.Right + gridPart[m, 2].Alignment = Align.Left + gridPart[m, 3].Alignment = Align.Center + gridPart[m, 4].Alignment = Align.Left + gridPart[m, 5].Alignment = Align.Left +NEXT + +END + +PUBLIC SUB gridDisk_Click() +DIM arrTemp AS NEW String[] +DIM n AS Long, m AS Long, p AS Long + +IF gridDisk.Row = 0 OR gridDisk[gridDisk.Row, 2].Text = "" THEN +ELSE + IF gridDisk[gridDisk.Row, 3].Text = "" THEN + gridDisk[gridDisk.Row, 3].Text = "+++" + ELSE + gridDisk[gridDisk.Row, 3].Text = "" + ENDIF + + FOR m = 1 TO gridPart.Rows.Count - 1 + FOR n = 0 TO gridPart.Columns.Count - 1 + gridPart[m, n].text = "" + NEXT + NEXT + m = 0 + + FOR p = 1 TO MaxDisks + IF gridDisk[p, 3].Text = "+++" THEN + selectedDisk = gridDisk[p, 0].Text + FOR n = 1 TO MaxPartions + IF InStr(Global.PartInfo[n - 1].Device, selectedDisk) THEN + m = m + 1 + gridPart[m, 0].Text = Global.PartInfo[n - 1].Device + arrTemp = Split(Functions.AutoUnits(Global.PartInfo[n - 1].Blocks * 1024), ";", "", TRUE) + gridPart[m, 1].Text = arrTemp[0] + gridPart[m, 2].Text = arrTemp[1] + gridPart[m, 3].Text = IIf(Global.PartInfo[n - 1].Bootable, "B", "") + gridPart[m, 4].Text = Functions.getPartType(Global.PartInfo[n - 1].ID) + IF gridPart[m, 4].Text = "Linux swap" THEN + gridPart[m, 5].Text = "swap" + gridPart[m, 6].Text = "swap" + ELSE IF gridPart[m, 4].Text = "Linux" THEN + gridPart[m, 6].Text = "reiserfs" + Global.PartInfo[n - 1].FileSystem = "reiserfs" + ELSE + gridPart[m, 5].Text = Mid$(gridPart[m, 0].Text, 6) + gridPart[m, 6].Text = "--------------------" + ENDIF + ENDIF + NEXT + ENDIF + NEXT +ENDIF + +END + +PUBLIC SUB btnOK_Click() +DIM vPI AS NEW cPartInstall +DIM n AS Long +DIM sTemp AS String + +FOR n = 1 TO gridPart.Rows.Count - 1 + IF InStr(LCase(gridPart[n, 4].Text), LCase("Linux")) THEN + vPI = NEW cPartInstall + vPI.Device = gridPart[n, 0].Text + vPI.Mountpoint = gridPart[n, 5].Text + vPI.FileSystem = gridPart[n, 6].Text + Global.PARTinst.Push(vPI) + ENDIF +NEXT + +ME.Close(TRUE) + +END + +PUBLIC SUB btnCancel_Click() + +ME.Close() + +END + +PUBLIC SUB gridPart_Menu() + +IF gridPart[gridPart.Row, 4].Text = "Linux" THEN + IF gridPart.Column = 5 THEN + mountpoints.Popup + ELSE IF gridPart.Column = 6 THEN + filesystem.Popup + ENDIF +ENDIF + +END + +PUBLIC SUB Gmountpoint_Click() +DIM n AS Long + +FOR n = 0 TO Global.PartInfo.Max + IF Global.PartInfo[n].Device = gridPart[gridPart.Row, 0].Text THEN + gridPart[gridPart.Row, 5].Text = LAST.Tag + Global.PartInfo[n].Mountpoint = gridPart[gridPart.Row, 5].Text + BREAK + ENDIF +NEXT + +END + +PUBLIC SUB Gfilesystem_Click() +DIM n AS Long + +FOR n = 0 TO Global.PartInfo.Max + IF Global.PartInfo[n].Device = gridPart[gridPart.Row, 0].Text THEN + gridPart[gridPart.Row, 6].Text = LAST.Tag + Global.PartInfo[n].FileSystem = gridPart[gridPart.Row, 6].Text + BREAK + ENDIF +NEXT + +END + +PUBLIC SUB gridPart_Click() +DIM retstr AS String + +IF gridPart.Column = 5 THEN + IF gridPart[gridPart.Row, 4].Text <> "Linux" AND gridPart[gridPart.Row, 5].Text <> "swap" THEN + ' Get mount label. + retstr = InputBox.Input("Set mountpoint:", "", gridPart[gridPart.Row, 5].Text) + IF retstr THEN + ' TODO: validate retstr + gridPart[gridPart.Row, 5].Text = retstr + END IF + ENDIF +ENDIF + +END + + diff --git a/frmPartSelect.form b/frmPartSelect.form new file mode 100644 index 0000000..f712884 --- /dev/null +++ b/frmPartSelect.form @@ -0,0 +1,135 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(54.125,9.375,86,69) + 'Move(433,75,688,552) + Font = Font["Luxi Sans"] + Text = ("") + Border = Window.Fixed + SkipTaskbar = True + { mountpoints Menu + Text = ("Mountpoints") + Visible = False + Tag = "mountpoints" + { root Menu Gmountpoint + Name = "root" + Text = ("/") + Tag = "/" + } + { home Menu Gmountpoint + Name = "home" + Text = ("/home") + Tag = "/home" + } + { var Menu Gmountpoint + Name = "var" + Text = ("/var") + Tag = "/var" + } + { opt Menu Gmountpoint + Name = "opt" + Text = ("/opt") + Tag = "/opt" + } + { tmp Menu Gmountpoint + Name = "tmp" + Text = ("/tmp") + Tag = "/tmp" + } + { boot Menu Gmountpoint + Name = "boot" + Text = ("/boot") + Tag = "/boot" + } + { usr Menu Gmountpoint + Name = "usr" + Text = ("/usr") + Tag = "/usr" + } + { share Menu Gmountpoint + Name = "share" + Text = ("/share") + Tag = "/share" + } + } + { filesystem Menu + Text = ("FileSystem") + Visible = False + Tag = "filesystem" + { xfs Menu Gfilesystem + Name = "xfs" + Text = ("xfs") + Tag = "xfs" + } + { reiserfs Menu Gfilesystem + Name = "reiserfs" + Text = ("reiserfs") + Tag = "reiserfs" + } + { ext3 Menu Gfilesystem + Name = "ext3" + Text = ("ext3") + Tag = "ext3" + } + { ext2 Menu Gfilesystem + Name = "ext2" + Text = ("ext2") + Tag = "ext2" + } + } + { Label1 Label + MoveScaled(0,0,34.625,3) + 'Move(0,0,277,24) + Font = Font["Luxi Sans,Bold,12"] + Text = ("Drives") + Alignment = Align.Center + Border = Border.Raised + } + { gridDisk GridView + MoveScaled(0,3,34.625,13) + 'Move(0,24,277,104) + Font = Font["Luxi Sans,10"] + ToolTip = ("Click on select install drive") + } + { gridPart GridView + MoveScaled(0,19,86,50) + 'Move(0,152,688,400) + Font = Font["Luxi Sans,10"] + ToolTip = ("Right-click in Mount or FileSystem to set") + } + { Panel1 Panel + MoveScaled(35,0.125,51,7) + 'Move(280,1,408,56) + Font = Font["Luxi Sans"] + Border = Border.Etched + { btnOK Button + MoveScaled(4,1,19,5) + 'Move(32,8,152,40) + Font = Font["Luxi Sans"] + Text = ("OK") + Default = True + } + { btnCancel Button + MoveScaled(27,1,19,5) + 'Move(216,8,152,40) + Font = Font["Luxi Sans"] + Text = ("Cancel") + Cancel = True + } + } + { Label2 Label + MoveScaled(0,16,86,3) + 'Move(0,128,688,24) + Font = Font["Luxi Sans,Bold,12"] + Text = ("Partitions") + Alignment = Align.Center + Border = Border.Raised + } + { TextLabel1 TextLabel + MoveScaled(35,7,51,9) + 'Move(280,56,408,72) + Font = Font["Luxi Sans,10"] + Text = ("
    \n
  • Left-click to (un)select drive(s) to install Vector Linux.
  • \n
  • Right-click on Linux partitions to pick mountpoint
  • \n
  • Left-click on other partitions to edit mountpoint
  • \n
\n") + Border = Border.Etched + } +} diff --git a/frmPartitioner.class b/frmPartitioner.class new file mode 100644 index 0000000..9a9c73d --- /dev/null +++ b/frmPartitioner.class @@ -0,0 +1,28 @@ +' Gambas class file + +' ### PARTITIONER FORM ### + + +PUBLIC SUB Embedder1_Error() + +message.Error("Error embedding external application, might be due to low memory.") +ME.Hide +frmPartitions.Show +utils.BUTTrest +frmPartitions.Show +ME.Close + +END + +PUBLIC SUB Embedder1_Close() + +ME.Hide +frmPartitions.Show +utils.BUTTrest +ME.Close + +Utils.DrivePartInfo +frmPartSelect.ShowModal + +END + diff --git a/frmPartitioner.form b/frmPartitioner.form new file mode 100644 index 0000000..6683a48 --- /dev/null +++ b/frmPartitioner.form @@ -0,0 +1,17 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(36.75,30.625,57.125,57.125) + 'Move(294,245,457,457) + Font = Font["Luxi Sans"] + Expand = True + Text = ("") + Border = Window.None + Arrangement = Arrange.Fill + { Embedder1 Embedder + MoveScaled(0,0,46,23) + 'Move(0,0,368,184) + Font = Font["Luxi Sans"] + Expand = True + } +} diff --git a/frmPartitions.class b/frmPartitions.class new file mode 100644 index 0000000..e72bedf --- /dev/null +++ b/frmPartitions.class @@ -0,0 +1,176 @@ +' Gambas class file + +' ### PARTITIONING MODE FORM ### + +PUBLIC tnum AS Integer[] +PUBLIC ttime AS Date + +PUBLIC SUB Form_Show() + +' set button focus: +frmMain.Button3.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +TextLabel1.Adjust + +END + +PUBLIC SUB Button1_Click() 'Full disk: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +frmMain.Button3.Enabled = FALSE 'Disable "Partitions". +frmMain.Button4.Enabled = TRUE 'Enable "Packages". +frmMain.Button4_Click 'Advance to "Packages". + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button2_Click() 'Free space: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +frmMain.Button3.Enabled = FALSE 'Disable "Partitions". +frmMain.Button4.Enabled = TRUE 'Enable "Packages". +frmMain.Button4_Click 'Advance to "Packages". + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button3_Click() 'GParted: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +IF User.Name <> "root" THEN + message.Warning("You need to be root to run GParted...", "Exit") +ELSE + Global.tproc = SHELL "gparted" + ttime = Now + REPEAT + 'tnum = desktop.Find("/dev/hda - GParted") + tnum = desktop.Find("GParted") + WAIT 0.1 + IF DateDiff(ttime, Now, gb.Second) > 25 THEN + message.Error("Error executing GParted, could be due to low memory.") + BREAK + ENDIF + UNTIL tnum.Count > 0 + IF tnum.Count > 0 THEN + frmPartitioner.Reparent(frmMain.pnlContainer, 0, 0) + frmPartitioner.Embedder1.Embed(tnum[0]) + ME.Hide + frmPartitioner.Show + frmPartitioner.Embedder1.Raise + ENDIF +ENDIF + +IF Global.DebugMode = TRUE THEN + Utils.DrivePartInfo + frmPartSelect.ShowModal +ENDIF + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button4_Click() 'cfdisk: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +IF User.Name <> "root" THEN + message.Warning("You need to be root to run cfdisk...", "Exit") +ELSE + utils.BUTTdisable +' Global.tproc = SHELL "xterm -e cfdisk" +' Global.tproc = EXEC ["xterm", "-e", "cfdisk"] + Global.tproc = EXEC ["aterm", "+tr", "+sb", "-fg", "black", "-bg", "white", "-e", "cfdisk"] + ttime = Now + REPEAT + tnum = desktop.Find("cfdisk") + WAIT 0.1 + IF DateDiff(ttime, Now, gb.Second) > 10 THEN + message.Error("Error executing cfdisk, could be due to low memory.") + frmPartitions.Show + utils.BUTTrest + BREAK + ENDIF + UNTIL tnum.Count > 0 + IF tnum.Count > 0 THEN + frmPartitioner.Reparent(frmMain.pnlContainer, 0, 0) + frmPartitioner.Embedder1.Embed(tnum[0]) + ME.Hide + frmPartitioner.Show + frmPartitioner.Embedder1.SetFocus + ENDIF +ENDIF + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button5_Click() 'Preset strategies: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + + +' do some stuff... + + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + +PUBLIC SUB Button6_Click() 'No partitioning: + +' Check for button execution: +IF Global.flagBUTTExec = TRUE THEN RETURN + +' Flag button execution: +Global.flagBUTTExec = TRUE + +' Mountpoint selection: +Utils.DrivePartInfo +frmPartSelect.ShowModal + +' Unflag button execution: +Global.flagBUTTExec = FALSE + +END + diff --git a/frmPartitions.form b/frmPartitions.form new file mode 100644 index 0000000..07c9221 --- /dev/null +++ b/frmPartitions.form @@ -0,0 +1,115 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(4.125,6.125,90.625,78.375) + 'Move(33,49,725,627) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(1,2,59,66) + 'Move(8,16,472,528) + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,68,50) + 'Move(0,0,544,400) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

Available partitioning modes:

\n\nAutomatic partitioning: The installer will handle all partition related decisions for you:\n
    \n
  • Full disk: Choose this option if you want to use your entire hard disk for VL. WARNING: this option will DELETE everything on your hard disk, or offer a choice if there are multiple disks. You have been WARNED.
  • \n
  • Free space: using available free (unpartitioned) disk space.
  • \n
\nManual partitioning: You have full control of partitioning.\n
    \n
  • Using gparted (the advanced graphical partitioner).
  • \n
  • Using cfdisk (the traditional partition tool).
  • \n
\nOther partitioning:\n
    \n
  • Preset strategies: auto allocates partitions according to most common usage strategy intended for this computer.
  • \n
  • No partitioning: If you wish to use existing Linux and swap partitions. WARNING: The existing Linux partitions will be OVERWRITTEN. You have been WARNED.
  • \n
\n") + } + } + { VBox1 VBox + MoveScaled(61,1,29,68) + 'Move(488,8,232,544) + Font = Font["Luxi Sans"] + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Partitioning mode") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,62) + 'Move(0,32,232,496) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + { Frame1 Frame + MoveScaled(2,1,25,15) + 'Move(16,8,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Automatic") + { Button1 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Full disk") + } + { Button2 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Free space") + } + } + { Frame2 Frame + MoveScaled(2,16,25,15) + 'Move(16,128,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Manual") + { Button3 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("GParted") + } + { Button4 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("cfdisk") + } + } + { Frame3 Frame + MoveScaled(2,31,25,15) + 'Move(16,248,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Others") + { Button5 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Preset strategies") + } + { Button6 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("No partitioning") + } + } + } + } +} diff --git a/frmTools.class b/frmTools.class new file mode 100644 index 0000000..c5e376d --- /dev/null +++ b/frmTools.class @@ -0,0 +1,72 @@ +' Gambas class file + +' ### VL TOOLS FORM ### + +PUBLIC SUB Form_Show() + +' set button focus: +frmMain.Button7.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +'TextLabel1.Height = Global.htmlLen +TextLabel1.Adjust + +END + +PUBLIC SUB Button1_Click() ' Repair LILO: + + + +END + +PUBLIC SUB Button2_Click() ' Restore packages: + + + +END + +PUBLIC SUB Button3_Click() 'Backup /home: + + + +END + +PUBLIC SUB Button4_Click() 'Restore /home: + + + +END + +PUBLIC SUB Button5_Click() ' Tool 5: + + + +END + +PUBLIC SUB Button6_Click() ' Tool 6: + +' 4 debug: +IF Functions.MakeTree(User.Home &/ "fhstree") THEN + message.Info("FHS tree created under " & User.Home &/ "fhstree/") +ELSE + message.Error("Error creating FHS tree") +ENDIF + +END + +PUBLIC SUB TextLabel1_MouseDown() + + + +END + diff --git a/frmTools.form b/frmTools.form new file mode 100644 index 0000000..a49ae16 --- /dev/null +++ b/frmTools.form @@ -0,0 +1,114 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(41.375,35.625,98.625,64.625) + 'Move(331,285,789,517) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(2,2,55,56) + 'Move(16,16,440,448) + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,56,50) + 'Move(0,0,448,400) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

Vector Linux repair tools:

\n\nDistro repair tools:\n
    \n
  • Repair LILO: Repair Linux Loader boot manager of an existing Vector Linux installation.
  • \n
  • Restore packages: Restore original packages from the install CD, to fix a broken upgrade.
  • \n
\nBackup / restore tools:\n
    \n
  • Backup /home: Backup your /home directory for safekeeping.
  • \n
  • Restore /home: Restore your /home directory from a previous backup. WARNING: The existing /home directory will be OVERWRITTEN during restore. You have been WARNED.
  • \n
\nMiscellaneous tools: \n
    \n
  • Tool 5: Tool number 5 to fix something or other.
  • \n
  • Tool 6: Tool number 6 to fix something or other.
  • \n
\n") + } + } + { VBox1 VBox + MoveScaled(58,1,29,61) + 'Move(464,8,232,488) + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("VL Tools") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,4,29,50) + 'Move(0,32,232,400) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Border = Border.Etched + { Frame1 Frame + MoveScaled(2,1,25,15) + 'Move(16,8,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Distro repair") + { Button2 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Restore packages") + } + { Button1 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Repair LILO") + } + } + { Frame2 Frame + MoveScaled(2,16,25,15) + 'Move(16,128,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Backup / restore") + { Button3 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Backup /home") + } + { Button4 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Restore /home") + } + } + { Frame3 Frame + MoveScaled(2,31,25,15) + 'Move(16,248,200,120) + Font = Font["Luxi Sans,14"] + Text = ("Miscellaneous") + { Button5 Button + MoveScaled(1,3,23,5) + 'Move(8,24,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("Tool 5") + } + { Button6 Button + MoveScaled(1,9,23,5) + 'Move(8,72,184,40) + Font = Font["Luxi Sans,14"] + Background = Color.ButtonBackground + Foreground = Color.ButtonForeground + Text = ("(Make FHS tree)") + } + } + } + } +} diff --git a/frmWelcome.class b/frmWelcome.class new file mode 100644 index 0000000..df99c18 --- /dev/null +++ b/frmWelcome.class @@ -0,0 +1,41 @@ +' Gambas class file + +' ### WELCOME FORM ### + +PUBLIC SUB Form_Show() + +IF Global.flagStarted THEN butStart.Enabled = FALSE + +' set button focus: +butStart.SetFocus + +' set some background colours: +TextLabel1.BackColor = Global.HTMLBG +lblSubTitle.BackColor = Global.LogoBG +PictureBox1.BackColor = Global.LogoBG +Panel1.BackColor = Global.LogoBG + +END + +PUBLIC SUB Form_Resize() + +' Resize the html message: +TextLabel1.Width = ScrollView1.ClientWidth +TextLabel1.Adjust + +PictureBox1.Move(0, 0, Panel1.ClientWidth, Panel1.ClientHeight) +PictureBox1.Refresh + +END + +PUBLIC SUB butStart_Click() + +butStart.Enabled = FALSE +Global.flagStarted = TRUE +frmMain.Button2.Enabled = TRUE ' Enable "Choices". +frmMain.Button2_Click ' Advance to "Choices". + +END + + + diff --git a/frmWelcome.form b/frmWelcome.form new file mode 100644 index 0000000..120abd8 --- /dev/null +++ b/frmWelcome.form @@ -0,0 +1,64 @@ +# Gambas Form File 1.0 + +{ Form Form + MoveScaled(21.625,26.125,98.625,64.625) + 'Move(173,209,789,517) + Font = Font["Luxi Sans"] + Background = &HFFFFFF& + Text = ("") + Border = Window.None + Arrangement = Arrange.Horizontal + { ScrollView1 ScrollView + MoveScaled(2,2,55,56) + 'Move(16,16,440,448) + Background = &HDFFFFF& + Expand = True + ScrollBar = Scroll.Vertical + { TextLabel1 TextLabel + MoveScaled(0,0,56,50) + 'Move(0,0,448,400) + Font = Font["Luxi Sans,14"] + Background = &HDFFFFF& + Padding = 10 + AutoResize = True + Text = ("

Dear Vector Linux user:

\n\n

\nWe have worked very hard to make this install as quick and easy as possible. We hope you will also like its looks. To install, click on the START button below the VL logo. Use the buttons on the top row to return to a previous stage. If you have already installed VL and just need to use some of the rescue functions, head on over to the Tools button.\n


\n\n

About:

\n\n

\nVector Linux is a small, but full-featured and VERY fast, Linux operating system for x86 PCs, based on one of the original Linux distributions, Slackware. VL is bloat free, easy to install, configure and maintain, with automatic hardware configuration, unique administration tools and easy package management via the Gslapt/slapt-get system.\n


\n\n

Credits:

\n\n

\nInstaller made in Gambas2 by Joe1962 and Uelsk8s, Gambas is the copyright of Benoit Minisini.\n

\n\n

\nThe Vector Linux Community members that made this release possible: Vector (Founder), Tigger (SOHO Architect), Kocil (Dynamite Man), JohnB316 (SOHO Chief), Joe1962 (VL-hot Chief), Uelsk8s (LIVE Chief), Barlas, Berke, Cintyram, Freakyc, Gamfa, GbHill, Hanumizzle, Inggy, Jbcolmena, Jaos, JohnVan, Keffin, Lagagnon, Lost&LovinLinux, Lyn, Mamahoohoo, Maf3000, Monty67, Mutiny, Niiler, PastorEd, Paul, Ren, Shalow_Hal, Suse-Refugee, TonyH9904, UKBill, Vanger, Verbl-Kint, VxT, WebMouse, Wile_Coyote, YaP, Yiannis, Zarniwoop.\n

\n") + } + } + { VBox1 VBox + MoveScaled(60,2,29,68) + 'Move(480,16,232,544) + { lblSubTitle Label + MoveScaled(0,0,29,4) + 'Move(0,0,232,32) + Font = Font["Luxi Sans,Bold,12"] + Background = &H0055FF& + Text = ("Welcome to Vector Linux!") + Alignment = Align.Center + Border = Border.Etched + } + { Panel1 Panel + MoveScaled(0,0,29,50) + 'Move(0,0,232,400) + Font = Font["Luxi Sans"] + Background = &H0055FF& + Expand = True + Arrangement = Arrange.Fill + Border = Border.Etched + { PictureBox1 PictureBox + MoveScaled(0,0,29,50) + 'Move(0,0,232,400) + Background = &H0055FF& + Expand = True + Picture = Picture["VL-logo-shine.png"] + Alignment = Align.Center + } + } + { butStart Button + MoveScaled(3,55,23,7) + 'Move(24,440,184,56) + Font = Font["Luxi Sans,20"] + Text = ("START") + Default = True + } + } +} diff --git a/installer3.png b/installer3.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bbeb32fc7d60ae6618ed761eb22590419ed74e GIT binary patch literal 29979 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 X;7bVFy3oJ&00000NkvXXu0mjf4a9Ef literal 0 HcmV?d00001 diff --git a/vl-gui-installer.gambas b/vl-gui-installer.gambas new file mode 100755 index 0000000000000000000000000000000000000000..c33747102cf59b1787c43b0b10dcf23bb21bea8b GIT binary patch literal 204554 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�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