FileSelect​PopupEx

Hello NI,
I miss a little bit of documentation...
The help says that Windows XP and Server 2003 do not support this style dialog box, and if you use this function on Windows XP or Server 2003, LabWindows/CVI replaces it with the FileSelectPopup function at run time.
However, FileSelectPopup has two parameters more than FileSelectPopupEx, so what parameter values will be used in those cases?
Also, a comment or suggestion: Right now, FileSelectPopupEx is not supported on Linux, while not make CVI use FileSelectPopup instead?
Thanks,
Wolfgang
Solved!
Go to Solution.

Hi Wolfgang,
You are correct that the documentation does not tell you what the two missing parameters are set to. I will file a bug report for this.
Both the Allow Make Directory and Allow Cancel parameters are set to "yes" or 1 when it runs the FileSelectPopup on XP and Server 2003. The reason is because this is the behavior of the Vista style popup which is not configurable.
The FileSelectPopupEx function is currently not supported on Linux because CVI 2010 is the latest version for the Linux module and this function is new to CVI 2012. However, we described it as not supported because we did not intend to export it for Linux in the next version of the Linux Module since it is not relevant. I can see that it would be useful for the purposes of having a single source for both Windows and Linux. We will consider adding it for this purpose in the next version of Linux Module.
National Instruments
Product Support Engineer

Similar Messages

  • UI:FileSelection Pains

    Hi there
    I want the SBO-user that he can select files. I did not find a method in de UI-SDK so therefore I  build a class using the API call GetOpenFileNameA to have a WindowsDialog for selecting a file.
    GetOpenFileNameA works but the first time this API is called the dialog window is hidden behind SBO and thats really ugly.
    Question:
    Is there a method existing in the UI-SDK for file selection?
    Has somebody find out a better way then GetOpenFileNameA
    to select files?
    regards
    Kurt

    Good evening
    I did some research about it, the problem was the owner-handler you have to specify. If you just specify the SAP Business One-Window-Handle, the Open-Dialog appears in the foreground (have a look at sboHwnd in the code). Btw it looks like the SAP guys did the same, the Open File Dialog at the Addon-Administration screen just looks the same as I can see.
    Following code is working for me. I'm shure there's is a better way to find out the Window handle. Mine is just for testing purposes. I don't have easier approaches / I'm not aware of an SDK functionality which provides something like this.
    Does it work for you?
    Florian
    Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
                    Alias "GetOpenFileNameA" ( _
                    pOpenfilename As OPENFILENAME) As Long
    Declare Function FindWindowEx Lib "user32" _
                    Alias "FindWindowExA" ( _
                    ByVal hwndParent As Long, _
                    ByVal hwndChildAfter As Long, _
                    ByVal lpszClass As String, _
                    ByVal lpszWindow As String) As Long
    Private Type OPENFILENAME
      lStructSize As Long
      hwndOwner As Long
      hInstance As Long
      lpstrFilter As String
      lpstrCustomFilter As String
      nMaxCustFilter As Long
      nFilterIndex As Long
      lpstrFile As String
      nMaxFile As Long
      lpstrFileTitle As String
      nMaxFileTitle As Long
      lpstrInitialDir As String
      lpstrTitle As String
      flags As Long
      nFileOffset As Integer
      nFileExtension As Integer
      lpstrDefExt As String
      lCustData As Long
      lpfnHook As Long
      lpTemplateName As String
    End Type
    Public Function HandleClickTestutton(objForm As SAPbouiCOM.Form) As Boolean
        HandleClickTestutton = True
        Dim sboHwnd As Long
        sboHwnd = FindWindowEx(0, 0, "TMFrameClass", _
         "SAP Business One 2004A - MyCompanyName [2005]")
        Dim OpenFile As OPENFILENAME
        Dim lReturn As Long
        Dim sFilter As String
        OpenFile.lStructSize = Len(OpenFile)
        OpenFile.hwndOwner = sboHwnd
        OpenFile.hInstance = sboHwnd 'App.hInstance
        sFilter = "Batch Files (*.bat)" & Chr(0) & "*.BAT" & Chr(0)
        OpenFile.lpstrFilter = sFilter
        OpenFile.nFilterIndex = 1
        OpenFile.lpstrFile = String(257, 0)
        OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
        OpenFile.lpstrFileTitle = OpenFile.lpstrFile
        OpenFile.nMaxFileTitle = OpenFile.nMaxFile
        OpenFile.lpstrInitialDir = "C:"
        OpenFile.lpstrTitle = "Use the Comdlg API not the OCX"
        OpenFile.flags = 0
        lReturn = GetOpenFileName(OpenFile)
        If lReturn = 0 Then
           'MsgBox "The User pressed the Cancel Button"
        Else
           'MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
        End If
    End Function

  • Bug tabtip with fileselect​popup

    Using tabtip (on screen keyboard) anchored to the bottom (or on top) of the screen, it seems impossible to reach some fields of a fileselectpopup like the "save" button for example!!!
    This behavior is normal if tabtip is not anchored, nevertheless when anchored it autoscales UIR which is quite useful on applications running on tablet PC.
    Any workaround?
    Thanks.
    Cyrille Durel

    "358474",
    Thanks for reporting that. You might be able to use a different browser as a workaround. Please see 1056's response to 412374 about this: Re: Bug? Getting Error 404 in Wizards
    57434

  • FileSelect​Popup Load button says Directory History

    This is something new today, and it worked just fine last week.
    FileSelectPopup Load button says "Directory History" instead of Load
    file_sel_return = FileSelectPopup("", "*.txt", "", "Choose a Batch Script", VAL_LOAD_BUTTON, 0, 0, 1, 0, filename);
    I found a thread that talked about mixed languages and mentions the file c:\Windows\system32\cvirte\bin\msgrte.txt
    but that thread is from 2007.
    My app installed on another PC work correctly; the load button says Load!
    I am using CVI 9.0.1
    How do I fix this?
    I'm thinking it is only my PC that is messed up.
    Solved!
    Go to Solution.

    Do you have CVI installed on the problem machine? Yes
    What does the dialog box look like when from the CVI project window you go to File >> Open >> Source ? It looks correct, it has the "Load" button (hmmmm! interesting)!
    Does the dialog box behave as expected if you click the mislabeled button? Yes
    Does anything change if you replace VAL_LOAD_BUTTON with VAL_OK_BUTTON? Now the button says "N_etwork..."  I just noticed, the next popup should be one with an "OK" button, but it has "Remove" on it.
    Do you know of anything that has changed on the problem PC in the past week? Lotus Notes script was run to change server (which would not surprise me if it screwed this up); otherwise, nothing.

  • Another FileSelect​Popup

    hi all,
    a short question into the group:
    If I call "FileSelectPopup(...)" sometimes another kind of popup appers (attached a png). does anybody know the mechanism behind this behaviour ?
    best regards
    Simon
    Attachments:
    2009-01-20_save.PNG ‏138 KB

    Actually, that is a LabWindows/CVI dialog. It is the dialog that CVI used in Windows 3.1.
    In the CVI environment, that dialog can appear, as a fall-back option, if an error happens when launching the standard dialog.
    In a CVI program, when calling FileSelectPopup, that dialog is displayed, if CVI thinks that the program is running in an old OS, which should not be the case.
    Simon: you mentioned that it appears "sometimes". Have you been able to detect any pattern for when it does and does not appear? Try adding the following code to your program:
    #include <windows.h>
    OSVERSIONINFO osInfo;
    osInfo.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
    GetVersionEx (&osInfo);   // check the return value here. It should not be 0.
    DebugPrintf ("OS version: %d\n", osInfo.dwMajorVersion);
    Please confirm that the value printed is greater than 4.
    Luis

  • FileSelect​Popup at different languages

    I need to open a FileSelectPopup at different languages (Germen, englisch
    and french). How can I conform the panel to the selected language ? (CVI
    5.0)
    iSiTEC GmbH
    Dipl.-Ing. Norbert Rieper
    Stresemannstr. 46 / 0.10
    27570 Bremerhaven
    Tel: 0471 / 92234-31
    Fax: 0471 / 92234-44
    [email protected]

    Sorry Norbert, I think there is no way to open the FileSelectPopup with a
    different language. Some of the text strings in the popups are found in the
    text files of the CVI runtime library ( for a windows PC at
    \windows\system\cvirte\msgrt.txt) but not all.
    Do you use windows? Then you can try to use the "GetOpenFileName" API from
    windows. This should open an file select dialog in the actual windows
    language. Maybe its helps
    Stephan Gerhards
    DATALOG Systeme zur Meßwerterfassung GmbH & Co. KG
    Trompeterallee 110,
    D-41189 Mönchengladbach
    Tel.: +(49) 21 66/ 95 20 59
    Fax: +(49) 21 66/ 95 20 20
    e-mail: [email protected]
    Norbert Rieper schrieb in im Newsbeitrag:
    [email protected]..
    > I need to open a FileSelectPopup at different lan
    guages (Germen, englisch
    > and french). How can I conform the panel to the selected language ? (CVI
    > 5.0)
    >
    >
    >
    >
    > --
    > iSiTEC GmbH
    > Dipl.-Ing. Norbert Rieper
    > Stresemannstr. 46 / 0.10
    > 27570 Bremerhaven
    > Tel: 0471 / 92234-31
    > Fax: 0471 / 92234-44
    > [email protected]
    >
    >

  • Multiboot does not work

    I have installed multiboot(arch linux x86_64)
    http://aur.archlinux.org/packages.php?ID=33187&detail=1
    but it doesn't start.
    if I start, it shows
    $multisystem
    Error: USER:<name> is not admin!
    I tried adding <name> to adm group by:
    $usermod -a -G adm <name>
    and it was successful
    but the error still comes
    $multisystem
    Error: USER:<name> is not admin!
    I also tried to edit gui_multisystem.sh following the instructions given in the link above and now it looks like this:
    (But it didn't work) How can I make multiboot work
    #! /bin/bash --posix
    chemin="$(cd "$(dirname "$0")";pwd)/$(basename "$0")";
    dossier="$(dirname "$chemin")"
    export chemin dossier
    cd "${dossier}"
    ###Pour exporter la librairie de gettext.
    set -a
    source gettext.sh
    set +a
    export TEXTDOMAIN=multisystem
    export TEXTDOMAINDIR=${dossier}/locale
    . gettext.sh
    multisystem=$0
    #stop si root!
    if [ "$(id -u)" -ne "0"]; then
    zenity --error --text "$(eval_gettext "Erreur: pas en root!")"
    nohup "$dossier"/kill.sh&
    exit 0
    fi
    #gtkrc perso
    #bonne adresse pour les styles gtkrc ==> http://orford.org/gtk/
    # Example pour modifier style des boutons nommés stylebt
    #style "styleBorderless" {
    # GtkButton::inner-border = {10, 0, 0, 10}
    # xthickness = 0
    # ythickness = 0
    #widget "*stylebt" style "styleBorderless"
    #Exemple pour changer police d'un widget nommé GtkEditFontMonospace
    #style "styleGtkEditFontMonospace" {
    # text[NORMAL] = "#ffffff"
    # base[NORMAL] = "#000000"
    # font_name = "monospace 16"
    #widget "*GtkEditFontMonospace" style "styleGtkEditFontMonospace"
    if [ -f "$HOME/.multisystem/gtkrc" ]; then
    export GTK2_RC_FILES=$HOME/.multisystem/gtkrc:~/.gtkrc-2.0
    fi
    #Test les path et ajout à .profile de user si path existe et non present dans $PATH
    #pour fonctionnement de which en user non sudo sur les bases Debian
    function FCT_CHECKPATH()
    [ ! -f "$HOME/.profile" ] && >"$HOME/.profile"
    . $HOME/.profile
    export PATH=$PATH
    path_curents="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
    path_actuels="$(echo $PATH | tr ":" "\n")"
    path_add=""
    I=$IFS; IFS=":"
    for test_path in $path_curents; do
    if [[ ! "$(grep "^${test_path}$" <<<"${path_actuels}")" ]]; then
    path_add="${path_add}${test_path}:"
    echo Ajouter PATH: ${test_path}
    fi
    done
    IFS=$I
    if [ "${path_add}" ]; then
    echo "PATH=\"${path_add}\$PATH\"" | tee -a "$HOME/.profile"
    export PATH="${path_add}$PATH"
    fi
    FCT_CHECKPATH
    #Path gtkdialog
    GTKDIALOG=gtkdialog
    export GTKDIALOG
    #Check version gtkdialog
    function funcGTKDVGet() {
    GTKVMINI="0.8.0"
    GTKDV=( $($GTKDIALOG -v) )
    GTKDV=${GTKDV[2]}
    echo "Gtkdialog version: $GTKDV"
    if [[ $GTKDV < $GTKVMINI ]]; then
    GTKVADV="This application requires at least gtkdialog-$GTKVMINI,\nPlease updrade your version.\nWebsite: http://code.google.com/p/gtkdialog/"
    echo -e "\033[1;47;31m $GTKVADV \033[0m"
    zenity --info --text "$GTKVADV"&
    exit 0
    fi
    funcGTKDVGet
    #Créer dossier pref
    if [ ! -d "$HOME/.multisystem/" ]; then
    mkdir "$HOME/.multisystem/" 2>/dev/null
    fi
    #Mettre à jour les icones GTK ! à revoir ...
    #http://developer.gimp.org/api/2.0/gtk/gtk-update-icon-cache.html
    #gtk-update-icon-cache -t "$HOME"/.local/share/icons/hicolor/
    #manque ==> index.theme voir ==> /usr/share/icons/hicolor/index.theme
    #Caler lang si user n'a pas réglé dans gui de multisystem
    if [ ! -f "$HOME/.multisystem/lang_sel.txt" ]; then
    echo
    >"$HOME/.multisystem/lang_sel.txt"
    while read line
    do
    if [ "$(grep -i "$(echo $line | awk -F'|' '{print $3}'| sed "s/\..*//")" <<<"${LANG}")" ]; then
    echo $line | awk -F'|' '{print $3}'| sed "s/\..*//"
    echo $line >"$HOME/.multisystem/lang_sel.txt"
    break
    fi
    done <<<"$(cat "${dossier}/lang_list.txt" | sed "/^$/d")"
    #Si ne trouve pas de traduction passer en Anglais.
    if [ ! "$(cat "$HOME/.multisystem/lang_sel.txt")" ]; then
    echo "English|en|en_US.UTF-8" >"$HOME/.multisystem/lang_sel.txt"
    fi
    cat "$HOME/.multisystem/lang_sel.txt"
    fi
    #pour slitaz
    if [ "$(which tazpkg 2>/dev/null)" ]; then
    export LANG="$(awk -F\| '{print $3}' "$HOME/.multisystem/lang_sel.txt")"
    else
    declare -x LANGUAGE="$(awk -F\| '{print $3}' "$HOME/.multisystem/lang_sel.txt")"
    fi
    echo LANG:$LANG
    echo LANGUAGE:$LANGUAGE
    echo LANGSEL:$(cat "$HOME/.multisystem/lang_sel.txt")
    #zenity --info --text "$(export)"
    #locale -a
    #cat /etc/default/locale
    #/etc/environment or ~/.gtkrc
    #sudo locale-gen --purge fr_FR.UTF-8
    #locale-gen
    #dpkg-reconfigure locales
    #dpkg-reconfigure console-data
    #dpkg-reconfigure console-setup
    #id
    #if [ ! "$(ps ax | grep -v grep | grep "hal-lock --interface org.freedesktop.Hal.Device.Volume --exclusive --run ${chemin}")" ]; then
    #hal-lock --interface org.freedesktop.Hal.Device.Volume --exclusive --run "${chemin}"
    #exit 0
    #fi
    #Thème
    . ./theme.sh
    #Gui logo
    # font-family=\"purisa\" weight=\"bold\"
    if [ "$(grep "fr_FR" <<<"${LANG}")" ]; then
    export MOD_WAIT='<window title="MultiSystem-logo" window_position="1" decorated="false">
    <vbox>
    <text sensitive="false" use-markup="true" wrap="false" angle="10">
    <variable>MESSAGES</variable>
    <input>echo "\<b>\<span color=\"#EB2C00\" size=\"larger\">○ NOUVEAU !\nLa première clé USB MultiSystem du marché\nest disponible sur liveusb.info.\</span>\</b>" | sed "s%\\\%%g" | sed "s%\\\\n\\\\n\\\\n%%g"</input>
    </text>
    <pixmap>
    <input file>./logo_pub.jpg</input>
    </pixmap>
    <pixmap>
    <input file>./pixmaps/multisystem-wait.gif</input>
    </pixmap>
    </vbox>
    </window>'
    else
    export MOD_WAIT='<window title="MultiSystem-logo" window_position="1" decorated="false">
    <vbox>
    <pixmap>
    <input file>./logo.png</input>
    </pixmap>
    <pixmap>
    <input file>./pixmaps/multisystem-wait.gif</input>
    </pixmap>
    </vbox>
    </window>'
    fi
    #Lancer logo
    gtkdialog --program=MOD_WAIT &
    sleep .5
    function FCT_DETECT_PROCESS()
    #detect process
    #zenity --info --text "$(pgrep -xlc multisystem) $(pgrep -xlc gui_multisystem)"
    if [[ "$(pgrep -xlc multisystem)" -gt "1" || "$(pgrep -xlc gui_multisystem)" -gt "1" ]]; then
    wmctrl -c "MultiSystem-logo"
    #Activer fenetre
    xdotool windowactivate $(wmctrl -l | grep 'MultiSystem' | awk '{print $1}')
    exit 0
    fi
    FCT_DETECT_PROCESS
    #Verif dépendances...
    errorlist=()
    for i in $(grep -v "^#" <<<"${testlist}" | xargs)
    do
    if [ ! "$(which $i 2>/dev/null)" ]; then
    errorlist=(${errorlist[@]} $i)
    fi
    done
    #Stop si
    if [ "$(echo "${errorlist[@]}")" ]; then
    echo -e "\033[1;47;31m $(eval_gettext 'Erreur il manque: ')${errorlist[@]} \033[0m"
    cat /etc/group | grep ^users | grep $USER
    exit 0
    fi
    #dpkg -L grub-pc
    #mettre en place les icon pour lancement si pas installé!
    mkdir -p "$HOME"/.local/share/icons/hicolor/48x48/apps/ 2>/dev/null
    #comparer nombre icon et maj si diff
    if [ "$?" -eq 0; then
    cp -f "${dossier}/pixmaps/"* "$HOME"/.local/share/icons/hicolor/48x48/apps/
    fi
    #Vérifier que GParted n'est pas open!
    if [ "$(ps aux | grep -v grep | grep 'hal-lock.*interface org.freedesktop.Hal.Device.Storage.*exclusive')" ]; then
    zenity --error --text "$(eval_gettext "Erreur: un logiciel bloque l\'utilisation des disques, veuillez le fermer.")"
    nohup "$dossier"/kill.sh&
    exit 0
    fi
    #Vérifier que user est bien administrateur
    if [ "$(cat /etc/group | grep ^users)" ]; then
    echo
    if [ ! "$(cat /etc/group | grep ^users | grep $USER)" ]; then
    zenity --error --text "$(eval_gettext "Erreur:") USER:$USER is not admin!"
    nohup "$dossier"/kill.sh&
    exit 0
    fi
    fi
    #Fermer logo
    #zenity --info --text "logo3"
    #wmctrl -c "MultiSystem-logo"
    #Système de détection
    source ./gui-detect.sh
    sleep .1
    #Thème (laisser en doublon ici !)
    . ./theme.sh
    #mettre en place autorun.inf/multisystem.bat/icon.ico
    if [ ! -f "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf" ]; then
    #echo -e '[AutoRun]\r\nShellexecute=multisystem.bat\r\nICON=icon.ico\r\nLabel=MultiSystem' | tee "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf"
    echo -e '[AutoRun]\r\nICON=icon.ico\r\nLabel=MultiSystem\r\n\r\n[Content]\r\nMusicFiles=false\r\nPictureFiles=false\r\nVideoFiles=false' | tee "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/autorun.inf"
    #copier .ico
    cp -f "${dossier}/icon.ico" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/icon.ico"
    fi
    #par securité verifier multisystem.bat
    #7295356a95fc3e312ec342f57b944662 .../multisystem.bat
    #if [ "7295356a95fc3e312ec342f57b944662" != "$(md5sum "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem.bat" | awk '{print $1}')" ]; then
    #zenity --info --text "$(eval_gettext "ATTENTION!\nle fichier multisystem.bat à été modifié, Virus?")"
    #fi
    #Vérifier les mise à jour! / uniquement si installé!
    if [[ "${dossier}" == "/usr/local/share/multisystem" && "$(cat "$HOME/.multisystem/checkupdate")" = "true" ]]; then
    wget -t1 -T1 http://liveusb.info/multisystem/version-multisystem.txt -O "/tmp/multisystem/version-multisystem.txt"
    if [ "$(cat /tmp/multisystem/version-multisystem.txt 2>/dev/null)" ]; then
    echo ok
    if [ "$(cat /tmp/multisystem/version-multisystem.txt)" != "$(cat /usr/local/share/multisystem/version-multisystem.txt)" ]; then
    zenity --info --text "$(eval_gettext "Une mise à jour de multisystem est disponible")"&
    fi
    fi
    fi
    #Avertissement si user supprime OS dans gui de multisystem
    [ ! "$(cat "$HOME/.multisystem/check_rem" 2>/dev/null)" ] && echo "true" >"$HOME/.multisystem/check_rem"
    check_rem="$(cat "$HOME/.multisystem/check_rem")"
    #Activer icon dans menu gnome
    if [ "$(gconftool-2 --get "/desktop/gnome/interface/menus_have_icons" 2>/dev/null)" = "false" ]; then
    echo
    if [ ! -f "$HOME/.multisystem/active_icon" ]; then
    zenity --question --text="$(eval_gettext "Activer les icones dans les menus de gnome ?")"
    if [ $? = "0" ]; then
    echo ok >"$HOME/.multisystem/active_icon"
    gconftool-2 --set "/desktop/gnome/interface/menus_have_icons" --type bool "true"
    fi
    fi
    fi
    #mettre à jour le menu du tree
    #relever icone|iso|date
    gtkdialog --program=MOD_WAIT &
    sleep .1
    ./fonctions.sh
    #wmctrl -c "MultiSystem-logo"
    #Corriger bug 1.96 de mon grub.cfg
    if [ "$(grub-install -v | grep 1.96)" ]; then
    sed -i "s/linux16/linux/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    sed -i "s/initrd16/initrd/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    sed -i "s/--config-file=\/boot\/grub\/menu.lst//g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    sed -i "s/(\${root})//g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    sed -i "s/^set root=${root}/#set root=${root}/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    sed -i "s/\#set root=(hd0,1)/set root=(hd0,1)/g" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/boot/grub/grub.cfg"
    fi
    #Onglet À propos
    >/tmp/multisystem/multisystem-about
    while read line
    do
    echo "multisystem-$(echo ${line} | awk -F'|' '{print $2}')|$(eval_gettext 'Traducteur') $(echo ${line} | awk -F'|' '{print $1}'), $(echo ${line} | awk -F'|' '{print $4}')|$(echo ${line} | awk -F'|' '{print $5}')" >>/tmp/multisystem/multisystem-about
    done <<<"$(cat "${dossier}/lang_list.txt" | sed "/^$/d")"
    #check .deb
    verify_update="$(dpkg -l "multisystem" | grep "^ii multisystem" 2>/dev/null | awk '{print $3}')"
    #Si .deb est installé
    if [ "${verify_update}" ]; then
    echo "<span color='"'#4CB23F'"'>Version:${verify_update} $(cat ./version-multisystem.txt)</span>" >/tmp/multisystem/multisystem-inputversion
    #Si .deb n'est pas installé
    elif [ ! "${verify_update}" ]; then
    echo "<span color='"'#4CB23F'"'>Version:$(cat ./version-multisystem.txt)</span>" >/tmp/multisystem/multisystem-inputversion
    fi
    #Onglet Non-Libre
    #Créer dossier nonfree
    mkdir -p "$HOME"/.multisystem/nonfree 2>/dev/null
    #Check les files
    >/tmp/multisystem/multisystem-nonfree
    if [ -f "$HOME"/.multisystem/nonfree/plpbt.bin ]; then
    echo 'gtk-ok|plpbt.bin' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|plpbt.bin' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/plpcfgbt ]; then
    echo 'gtk-ok|plpcfgbt' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|plpcfgbt' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/NTDETECT.COM ]; then
    echo 'gtk-ok|NTDETECT.COM' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|NTDETECT.COM' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/SETUPLDR.BIN ]; then
    echo 'gtk-ok|SETUPLDR.BIN' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|SETUPLDR.BIN' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/RAMDISK.SY_ ]; then
    echo 'gtk-ok|RAMDISK.SY_' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|RAMDISK.SY_' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/RAMDISK.SYS ]; then
    echo 'gtk-ok|RAMDISK.SYS' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|RAMDISK.SYS' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/BOOTSECT.BIN ]; then
    echo 'gtk-ok|BOOTSECT.BIN' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|BOOTSECT.BIN' >>/tmp/multisystem/multisystem-nonfree
    fi
    if [ -f "$HOME"/.multisystem/nonfree/firadisk.ima ]; then
    echo 'gtk-ok|firadisk.ima' >>/tmp/multisystem/multisystem-nonfree
    else
    echo 'gtk-no|firadisk.ima' >>/tmp/multisystem/multisystem-nonfree
    fi
    #Détreminer éditeur text
    if [ "$(which nautilus)" ]; then
    navuse="nautilus"
    elif [ "$(which dolphin)" ]; then
    navuse="dolphin"
    elif [ "$(which rox-filer)" ]; then
    navuse="rox-filer"
    elif [ "$(which thunar)" ]; then
    navuse="thunar"
    elif [ "$(which pcmanfm)" ]; then
    navuse="pcmanfm"
    fi
    #forcer à true par defaut
    echo 'true' >/tmp/multisystem/multisystem-update-bootloader
    #Onglet par defaut
    echo 0 >/tmp/multisystem/multisystem-inputtab1
    echo 0 >/tmp/multisystem/multisystem-inputtab2
    echo 0 >/tmp/multisystem/multisystem-inputtab3
    #Bas de pages commun des onglets secondaires
    function FCT_HOME()
    echo '<pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox spacing="0">
    <button name="stylebt" height_request="30" image-position="0" relief="2" xalign="0" yalign="0">
    <height>16</height>
    <input file icon="multisystem-home"></input>
    <label>'$(eval_gettext 'Retour Accueil')'</label>
    <action>echo 0 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 0 > /tmp/multisystem/multisystem-inputtab2</action>
    <action>refresh:tab1</action>
    <action>refresh:tab2</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" height_request="30" image-position="0" relief="2" xalign="0" yalign="0">
    <height>16</height>
    <input file stock="gtk-quit"></input>
    <label>'$(eval_gettext 'Quitter')'</label>
    <action>wmctrl -c "MultiSystem-logo"</action>
    <action>wmctrl -c "MultiSystem-logo2"</action>
    <action>wmctrl -c "VBox"</action>
    <action>exit:exit</action>
    </button>
    </hbox>'
    #Onglet lister_lang
    function FCT_lister_lang()
    cat "$HOME/.multisystem/lang_sel.txt" | awk -F'|' '{print $1}'
    cat "${dossier}/lang_list.txt" | sed "/^$/d" | awk -F'|' '{print $1}'
    export -f FCT_lister_lang
    export texte_annonce="MultiSystem recherche des traducteurs,\nMerci de nous contacter\nsi vous souhaitez participer\nContact:[email protected]\n\nMultiSystem looking for translators,\nThank you contact us\nif you want to participate\nContact:[email protected]"
    #Onglet Télécharger des LiveCD
    echo All | tee /tmp/multisystem/multisystem-output-list
    function FCT_download_livecd()
    listcat="$(cat /tmp/multisystem/multisystem-output-list 2>/dev/null)"
    #Audio Utility Antivirus Gamer
    if [ "$(grep -E "(Audio)|(Utility)|(Antivirus)|(Gamer)" <<<"${listcat}" 2>/dev/null)" ]; then
    cat "${dossier}/list.txt" | sed "/^#/d" | sed "/^$/d" | grep -E "\|${listcat}\|"
    elif [ "${listcat}" = "All" ]; then
    cat "${dossier}/list.txt" | grep -v "^#" | sed "/^$/d"
    elif [ "${listcat}" = "clear" ]; then
    echo "||||"
    elif [ "${listcat}" ]; then
    cat "${dossier}/list.txt" | sed "/^#/d" | sed "/^$/d" | grep -iE "\|.*${listcat}.*\|.*\|.*\|"
    fi
    export -f FCT_download_livecd
    #Onglet Mise à jour
    function FCT_update()
    $radio1 && xdg-open 'http://liveusb.info/dotclear/index.php?pages/Soutien'&
    if [ "$radio3" == "true" ]; then
    nohup ./update-sel.sh &
    #maj partielle
    elif [ "$radio4" == "true" ]; then
    wget -nd http://liveusb.info/multisystem/os_support.sh -O /tmp/multisystem/os_support.sh 2>&1 \
    | sed -u 's/\([ 0-9]\+K\)[ \.]*\([0-9]\+%\) \(.*\)/\2\n#Transfert : \1 (\2) à \3/' \
    | zenity --progress --auto-kill --auto-close --width 400 --title "$(eval_gettext 'Téléchargement en cours...')"
    if [ "$(diff /tmp/multisystem/os_support.sh ${dossier}/os_support.sh 2>/dev/null)" ]; then
    #Remplacer...
    echo
    if [ "$(du -h "/tmp/multisystem/os_support.sh" 2>/dev/null | awk '{print $1}')" == "0" ]; then
    zenity --error --text "$(eval_gettext 'Erreur de téléchargement')"
    elif [ "$(grep FCT_RELOAD /tmp/multisystem/os_support.sh 2>/dev/null)" ]; then
    cp -f /tmp/multisystem/os_support.sh "${dossier}/os_support.sh"
    fi
    else
    zenity --info --title MultiSystem_Information --text="$(eval_gettext "Pas de mise à jour disponible,\nVous utilisez bien la dernière version du script.")"
    fi
    #Relancer gui
    nohup "${dossier}/gui_multisystem.sh" &
    sleep 1
    exit 0
    fi
    export -f FCT_update
    #Onglet Déboguer
    echo "" >/tmp/multisystem/multisystem-test-usb
    export message_debug="$(eval_gettext "Patience test en cours...")"
    #test écriture sur disque
    function FCT_debug_write()
    #espace dispo dans clé usb
    available="$(($(df -aB 1 $(cat /tmp/multisystem/multisystem-mountpoint-usb) | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '{print $4}')/1024/1024))"
    if [ "${available}" -lt "1024" ]; then
    message_debug="$(eval_gettext "Erreur: pas suffisament de place libre pour effectuer ce test,") ${available} < 1024Mio"
    echo "${message_debug}" >/tmp/multisystem/multisystem-test-usb
    exit 0
    fi
    echo -e "\E[37;44m\033[1m ${message_debug} \033[0m"
    dd if=/dev/zero bs=1024 count=1000000 of="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
    rm "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
    read
    echo "" >/tmp/multisystem/multisystem-test-usb
    #test lecture
    function FCT_debug_read()
    #dd if=/dev/zero bs=1024 count=1000000 of="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file" >dev/null
    #dd if="$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file" bs=64k | dd of=/dev/null
    #rm "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/multisystem-1Gb.file"
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
    sudo hdparm -Tt $(cat /tmp/multisystem/multisystem-selection-usb)
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
    read
    #reparer
    function FCT_debug_repair()
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
    #redimensionner
    sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
    sleep 2
    sudo dosfsck -r -w -v $(cat /tmp/multisystem/multisystem-selection-usb)
    calc_fatresize="$(sudo fatresize -i $(cat /tmp/multisystem/multisystem-selection-usb) -q | grep '^Max size' | awk '{print $3}')"
    echo calc_fatresize:${calc_fatresize} $((${calc_fatresize}/1000/1000))M
    sudo fatresize -p -s $((${calc_fatresize}/1000/1000))M $(cat /tmp/multisystem/multisystem-selection-usb)
    gvfs-mount -d $(cat /tmp/multisystem/multisystem-selection-usb) 2>/dev/null
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Attente, appuyez sur enter pour continuer.') \033[0m"
    read
    export -f FCT_debug_write FCT_debug_read FCT_debug_repair
    #Onglet N°5 Formater votre clé USB
    export format_text="$(parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') unit MB print)"
    echo -e "${format_text}" >/tmp/multisystem/multisystem-format-text
    function FCT_format()
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
    sudo echo
    #Démonter
    sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Veuillez saisir votre mot de passe d\047administrateur') \033[0m"
    #shred - Écrire par dessus un fichier pour en camoufler le contenu, et optionnellement l’effacer
    #shred -n 1 -z -v $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')
    dd if=/dev/zero of=$(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') bs=512 count=1
    sudo parted -a cylinder -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') mklabel msdos
    sudo parted -a cylinder -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') unit MB mkpart primary fat32 1 100%
    sleep 2
    sudo umount -f $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
    sudo mkdosfs -F32 -v -S512 -n multisystem $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1
    sleep 2
    sudo parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//') set 1 boot on
    #Vérifier/Réparer fat32
    #sudo dosfsck -t -a -r -v $(cat /tmp/multisystem/multisystem-selection-usb)
    sudo dosfsck -p -a -w -v $(cat /tmp/multisystem/multisystem-selection-usb)
    sleep 2
    sudo umount $(cat /tmp/multisystem/multisystem-selection-usb | sed 's/[0-9]//')1 2>/dev/null
    calc_fatresize="$(sudo fatresize -i $(cat /tmp/multisystem/multisystem-selection-usb) | grep '^Max size' | awk '{print $3}')"
    #redimensionner
    sudo fatresize -p -s ${calc_fatresize} $(cat /tmp/multisystem/multisystem-selection-usb)
    echo -e "\E[37;44m\033[1m $(eval_gettext 'Formatage effectué,\nveuillez débrancher/rebrancher votre clé USB\navant de relancer multisystem.') \033[0m"
    read
    exit 0
    export -f FCT_format
    #Onglet N°6 Afficher/Masquer des fichiers/dossiers dans votre clé usb
    function FCT_hidden_update_tree()
    #Mettre en forme pour le tree
    >/tmp/multisystem/multisystem-hidden
    echo -e "$(stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print $0}')" | while read line
    do
    var="$(echo "$line" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||")"
    echo "var:${var}"
    if [ "$(grep "^${var}$" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden")" ]; then
    echo "multisystem-red|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/${var}" >>/tmp/multisystem/multisystem-hidden
    else
    echo "multisystem-green|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/${var}" >>/tmp/multisystem/multisystem-hidden
    fi
    done
    FCT_hidden_update_tree
    function FCT_hidden_showall()
    stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print "multisystem-green|" $0}' >/tmp/multisystem/multisystem-hidden
    echo "" >"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
    FCT_hidden_update_tree
    function FCT_hidden_hiddenall()
    stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/"* | awk '{print "multisystem-red|" $0}' >/tmp/multisystem/multisystem-hidden
    echo -e "$(stat -c %n "$(cat /tmp/multisystem/multisystem-mountpoint-usb )/"* | awk '{print $0}')" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||" >"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
    FCT_hidden_update_tree
    function FCT_hidden_modify()
    echo
    rechercher="$(echo "${1}" | sed "s|$(cat /tmp/multisystem/multisystem-mountpoint-usb)/||")"
    if [ ! "$(grep "^${rechercher}$" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden")" ]; then
    #zenity --info --text "Masquer ${rechercher}"
    echo "${rechercher}" >>"$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
    else
    #zenity --info --text "Afficher ${rechercher}"
    sed -i "s|^${rechercher}$||" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
    sed -i "/^$/d" "$(cat /tmp/multisystem/multisystem-mountpoint-usb)/.hidden"
    fi
    FCT_hidden_update_tree
    export -f FCT_hidden_showall FCT_hidden_hiddenall FCT_hidden_modify FCT_hidden_update_tree
    function comment()
    { true; }
    export -f comment
    MULTISYSTEM='<window spacing="0" width_request="400" height_request="420" window_position="1" title="MultiSystem" icon-name="multisystem-icon" decorated="true" resizable="false">
    <notebook show-border="false" show_tabs="false" page="0" labels="0|1">
    '$(comment Onglet masqué primaire 0)'
    <vbox spacing="0">
    <notebook tab-pos="2" show-border="false" scrollable="true" show-tabs="true" page="0" enable-popup="true" homogeneous="false" labels="MS|'$(eval_gettext 'Menus')'|'$(eval_gettext 'Démarrage')'|'$(eval_gettext 'Non-Libre')'|'$(eval_gettext 'À propos')'">
    '$(comment Onglet N°0 MultiSystem)'
    <vbox spacing="0" height_request="380">
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox height_request="200">
    <vbox spacing="0">
    <button name="stylebt" width_request="32" height_request="100" tooltip-text="'$(eval_gettext 'Tester dans Qemu')'">
    <input file icon="multisystem-qemu"></input>
    <action>./fonctions.sh qemu</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="100" tooltip-text="'$(eval_gettext 'Tester dans VirtualBox')'">
    <input file icon="multisystem-vbox"></input>
    <action>./fonctions.sh vbox</action>
    <action>refresh:MESSAGES</action>
    </button>
    </vbox>
    <tree icon="multisystem-tux" tooltip-text="'$(eval_gettext "Double clic pour modifier les noms dans le menu du bootloader.")'" rules_hint="true" headers_visible="false" hover_expand="false" hover_selection="false" exported_column="1">
    <label>1|2|3|4|5</label>
    <variable>tree</variable>
    <input icon_column="0">if [ "$(cat /tmp/multisystem/multisystem-laisserpasser-usb)" = "ok" ];then cat /tmp/multisystem/multisystem-mise-en-forme;else echo "multisystem-logo|||||||";fi</input>
    <action>./fonctions.sh menu\|$tree</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </tree>
    <vbox spacing="0">
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu up">
    <input file stock="gtk-go-up"></input>
    <action>test $tree && ./fonctions.sh selup\|$tree</action>
    <variable>btup</variable>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu move">
    <input file stock="gtk-jump-to"></input>
    <action>test $tree && ./fonctions.sh move\|$tree</action>
    <variable>btmove</variable>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="Menu down">
    <input file stock="gtk-go-down"></input>
    <action>test $tree && ./fonctions.sh seldown\|$tree</action>
    <variable>btdown</variable>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Supprimer un système d'exploitation")'">
    <input file stock="gtk-delete"></input>
    <action>test $tree && ./fonctions.sh selclear\|$tree</action>
    <variable>btclear</variable>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <checkbox width_request="32" height_request="40" use-underline="true" active="'$check_rem'" tooltip-text="'$(eval_gettext "Prévenir avant de supprimer")'">
    <label>_</label>
    <variable>ckeckrem</variable>
    <action>if true echo "true" >"$HOME/.multisystem/check_rem"</action>
    <action>if false echo "false" >"$HOME/.multisystem/check_rem"</action>
    </checkbox>
    </vbox>
    <vbox spacing="0">
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Afficher/Masquer des fichiers/dossiers dans votre clé usb")'">
    <input file icon="multisystem-hidden"></input>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 6 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Ajouter une option de démarrage (cmdline)")'">
    <input file stock="gtk-edit"></input>
    <variable>btcmdline</variable>
    <action>test $tree && ./fonctions.sh cmdline\|$tree</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Ajouter mode persistent")'">
    <input file icon="multisystem-save"></input>
    <variable>btpersistent1</variable>
    <action>./fonctions.sh persistent\|$tree</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Créer CD pour lancer USB")'">
    <input file icon="multisystem-cdrom"></input>
    <variable>btcdamorce2</variable>
    <action>./fonctions.sh cdamorce</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="40" tooltip-text="'$(eval_gettext "Internationalisation")'">
    <input file icon="multisystem-language"></input>
    <variable>btlang1</variable>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    </vbox>
    <vbox spacing="0">
    <button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Réglages Grub")'">
    <input file stock="gtk-preferences"></input>
    <variable>btpref2</variable>
    <action>./fonctions.sh pref</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Mettre à jour Grub2")'">
    <input file icon="multisystem-grub48"></input>
    <variable>btgrub</variable>
    <action>./fonctions.sh grub</action>
    <action>refresh:MESSAGES</action>
    </button>
    <checkbox width_request="32" height_request="40" use-underline="true" active="true" tooltip-text="'$(eval_gettext "Décochez pour déplacer rapidement les menus, ne pas mettre à jour les bootloader, ATTENTION! cochez lors du dernier déplacement pour mettre à jour les bootloader.")'">
    <label>_</label>
    <variable>update_bootloader</variable>
    <action>if true echo true >/tmp/multisystem/multisystem-update-bootloader</action>
    <action>if false echo false >/tmp/multisystem/multisystem-update-bootloader</action>
    </checkbox>
    </vbox>
    <vbox spacing="0">
    <button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Télécharger des LiveCD")'">
    <input file icon="multisystem-download"></input>
    <variable>btdownload1</variable>
    <action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    <action>clear:QUOI</action>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 2 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <button name="stylebt" width_request="32" height_request="80" tooltip-text="'$(eval_gettext "Mise à jour")'">
    <input file icon="multisystem-update"></input>
    <variable>btmaj1</variable>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 3 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <checkbox width_request="32" height_request="40" use-underline="true" tooltip-text="'$(eval_gettext 'Vérifier les mise à jour à chaque lancement')'">
    <label>_</label>
    <variable>checkupdate2</variable>
    <default>true</default>
    <action>if true echo true >"'$HOME'/.multisystem/checkupdate"</action>
    <action>if false echo false >"'$HOME'/.multisystem/checkupdate"</action>
    <input>cat "'$HOME'/.multisystem/checkupdate"</input>
    <action>refresh:checkupdate</action>
    <action>refresh:checkupdate2</action>
    </checkbox>
    </vbox>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox height_request="70" spacing="0">
    <text sensitive="false">
    <variable>MESSAGES</variable>
    <input>echo "'$(eval_gettext "Volume USB:")'$(cat /tmp/multisystem/multisystem-selection-usb) UUID:$(cat /tmp/multisystem/multisystem-selection-uuid-usb)\n'$(eval_gettext 'Point de montage:')'$(cat /tmp/multisystem/multisystem-mountpoint-usb)\n'$(eval_gettext 'Taille:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $2}'\'')/1024))Mio '$(eval_gettext 'Occupé:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $3}'\'')/1024))Mio '$(eval_gettext 'Libre:')'$(($(df | grep ^$(cat /tmp/multisystem/multisystem-selection-usb) | awk '\''{print $4}'\'')/1024))Mio\n'$(eval_gettext 'Nombre de LiveCD:')'$(cat /tmp/multisystem/multisystem-nombreiso-usb)"</input>
    </text>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox spacing="0">
    <button name="stylebt" relief="2" tooltip-text="'$(eval_gettext 'Sauvegarde/Restauration')'">
    <input file icon="multisystem-save2"></input>
    <action>./fonctions.sh save</action>
    </button>
    <frame '$(eval_gettext "Glisser/Déposer iso/img")'>
    <hbox spacing="0">
    <entry primary-icon-name="multisystem-seliso" secondary-icon-name="'${theme_btn}'"
    accept="filename" activates-default="false" fs-folder="'$HOME/'" fs-action="file"
    fs-filters="*.iso|*.img" show-hidden="false" fs-title="Select an iso file"
    tooltip-text="'$(eval_gettext "Glisser/Déposer iso/img")'"
    primary-icon-tooltip-text="'$(eval_gettext 'Utilisez ce bouton si le Glisser/Déposer ne fonctionne pas.')'"
    secondary-icon-tooltip-text="'$(eval_gettext "Ajouter un liveCD")'">
    <variable>DAG</variable>
    <width>50</width><height>50</height>
    <action signal="changed">test "$DAG" && echo "DAG:$DAG"</action>
    <action signal="changed">test "$DAG" && ./fonctions.sh add\|"${DAG}" &</action>
    <action signal="changed">clear:DAG</action>
    <action signal="changed">refresh:DAG</action>
    <action signal="changed">refresh:MESSAGES</action>
    <action signal="changed">refresh:tree</action>
    <action signal="primary-icon-press">fileselect:DAG</action>
    <action signal="secondary-icon-press">./gui_multi_sel_launch.sh</action>
    </entry>
    </hbox>
    </frame>
    <button name="stylebt" relief="2" tooltip-text="'$(eval_gettext "Quitter")'">
    <input file icon="multisystem-exit"></input>
    <action>wmctrl -c "MultiSystem-logo"</action>
    <action>wmctrl -c "MultiSystem-logo2"</action>
    <action>wmctrl -c "VBox"</action>
    <action type="exit">exit</action>
    </button>
    </hbox>
    </vbox>
    '$(comment Onglet N°1 Menus)'
    <vbox spacing="0">
    <hbox spacing="0">
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file stock="gtk-preferences"></input>
    <variable>btpref</variable>
    <action>./fonctions.sh pref</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Réglages Grub')'</b>"</label>
    </text>
    </hbox>
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-grub48"></input>
    <variable>btgrub2</variable>
    <action>./fonctions.sh grub</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Mettre à jour Grub2')'</b>"</label>
    </text>
    </hbox>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-grub48"></input>
    <variable>btburg</variable>
    <action>./fonctions.sh burg</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Mettre à jour Burg')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file stock="gtk-save"></input>
    <variable>btsave</variable>
    <action>./fonctions.sh save</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Sauvegarde/Restauration')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-save"></input>
    <variable>btpersistent2</variable>
    <action>./fonctions.sh persistent\|$tree</action>
    <action>refresh:MESSAGES</action>
    <action>refresh:tree</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Ajouter mode persistent')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-resize"></input>
    <variable>btpersistent3</variable>
    <action>./fonctions.sh persistent-resize</action>
    <action>refresh:MESSAGES</action>
    <action>refresh:tree</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Redimensionner persistent')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-download"></input>
    <variable>btdownload2</variable>
    <action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    <action>clear:QUOI</action>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 2 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:tree</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Télécharger des LiveCD')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-language"></input>
    <variable>btlang2</variable>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Internationalisation')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-gparted64"></input>
    <variable>btformat</variable>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 5 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Formater votre clé USB')'</b>"</label>
    </text>
    </hbox>
    <hbox spacing="0">
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file stock="gtk-execute"></input>
    <variable>btdebug</variable>
    <action>echo "" >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 4 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Déboguer')'</b>"</label>
    </text>
    </hbox>
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-vbox"></input>
    <variable>btinstallvbox</variable>
    <action>./fonctions.sh installvbox</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Installer VirtualBox')'</b>"</label>
    </text>
    </hbox>
    </hbox>
    <hbox spacing="0">
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-update"></input>
    <variable>btmaj2</variable>
    <action>echo 1 > /tmp/multisystem/multisystem-inputtab1</action>
    <action>echo 3 > /tmp/multisystem/multisystem-inputtab3</action>
    <action>refresh:tab1</action>
    <action>refresh:tab3</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Mise à jour')'</b>"</label>
    </text>
    </hbox>
    <hbox spacing="0">
    <button name="stylebt" width_request="36" height_request="36">
    <input file stock="gtk-delete"></input>
    <variable>btuninstall</variable>
    <action>nohup xterm -title 'Uninstall' -e "sudo ./uninstall.sh" &</action>
    <action>wmctrl -c "MultiSystem-logo"</action>
    <action>wmctrl -c "MultiSystem-logo2"</action>
    <action>wmctrl -c "VBox"</action>
    <action type="exit">exit</action>
    </button><text width_request="157" use-markup="true">
    <label>"<b>'$(eval_gettext 'Désinstaller')'</b>"</label>
    </text>
    </hbox>
    </hbox>
    </vbox>
    '$(comment Onglet N°2 Démarrage)'
    <vbox spacing="0">
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-cdrom"></input>
    <variable>btcdamorce</variable>
    <action>./fonctions.sh cdamorce</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Créer CD pour lancer USB')'</b>"</label>
    </text>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-grub48"></input>
    <variable>btinfoboot</variable>
    <action>./fonctions.sh infoboot\|grub</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Boot depuis Grub/Grub2')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-windows48"></input>
    <variable>btinfoboot</variable>
    <action>./fonctions.sh infoboot\|xp</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Boot depuis Windows XP')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-windows48"></input>
    <variable>btinfoboot</variable>
    <action>./fonctions.sh infoboot\|vista</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Boot depuis Windows Vista')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-apple48"></input>
    <variable>btinfoboot</variable>
    <action>./fonctions.sh infoboot\|macintel</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Boot depuis MacIntel')'</b>"</label>
    </text>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-qemu"></input>
    <variable>btqemu</variable>
    <action>./fonctions.sh qemu</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Tester votre liveUSB dans Qemu')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-vbox"></input>
    <variable>btvbox1</variable>
    <action>./fonctions.sh vbox</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Tester votre liveUSB dans VirtualBox')'</b>"</label>
    </text>
    </hbox>
    <hbox>
    <button name="stylebt" width_request="36" height_request="36">
    <input file icon="multisystem-vbox"></input>
    <variable>btvbox2</variable>
    <action>wmctrl -c "VBox"</action>
    <action>./VBox_livecd_gui.sh &</action>
    <action>refresh:MESSAGES</action>
    </button>
    <text width_request="345" use-markup="true">
    <label>"<b>'$(eval_gettext 'Tester un LiveCD dans VirtualBox')'</b>"</label>
    </text>
    </hbox>
    </vbox>
    '$(comment Onglet N°3 Non-Libre)'
    <vbox spacing="0">
    <text use-markup="true" wrap="true" width-chars="70" sensitive="false">
    <input>echo "\<b>\<big>'$(eval_gettext "Partie Non Libre de MultiSystem")'\</big>\</b>" | sed "s%\\\%%g"</input>
    </text>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <button name="stylebt" tooltip-text="'$(eval_gettext 'PLoP Boot Manager est un freeware.')'">
    <input file icon="multisystem-plop-logo"></input>
    <label>'$(eval_gettext 'Télécharger PLoP Boot Manager')'</label>
    <action>./fonctions-nonfree.sh plop</action>
    <action>refresh:tree2</action>
    </button>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <button name="stylebt" tooltip-text="'$(eval_gettext 'Utilisé pour démarrer les iso de Windows XP')'">
    <input file icon="multisystem-windows48"></input>
    <label>'$(eval_gettext 'Télécharger firadisk.ima')'</label>
    <action>./fonctions-nonfree.sh firadisk</action>
    <action>refresh:tree2</action>
    </button>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox homogeneous="true">
    <hbox>
    <button name="stylebt" tooltip-text="'$(eval_gettext 'Utilisé pour les iso BartPE')'">
    <input file icon="multisystem-windows48"></input>
    <label>'$(eval_gettext 'Télécharger Microsoft Windows Server 2003 SP1')'</label>
    <action>./fonctions-nonfree.sh bartpe</action>
    <action>refresh:tree2</action>
    </button>
    </hbox>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox height_request="200">
    <tree hover_selection="true" headers_visible="false" exported_column="0">
    <label>files</label>
    <input icon_column="0">cat /tmp/multisystem/multisystem-nonfree</input>
    <variable>tree2</variable>
    <action signal="button-press-event">nohup '${navuse}' "$HOME"/.multisystem/nonfree&</action>
    </tree>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    </vbox>
    '$(comment Onglet N°4 À propos)'
    <vbox spacing="0">
    <text use-markup="true" wrap="true" sensitive="false">
    <input>echo "\<b>'$(eval_gettext 'MultiSystem recherche des traducteurs,\nSi vous souhaitez participer,\nMerci de nous contacter.\nContact:')'[email protected]\</b>" | sed "s%\\\%%g"</input>
    </text>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox height_request="32" homogeneous="true">
    <text use-underline="true"><label>_</label></text>
    <text use-markup="true">
    <input file>/tmp/multisystem/multisystem-inputversion</input>
    </text>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <pixmap>
    <input file>"'${dossier}'/pixmaps/multisystem-map-flags.png"</input>
    </pixmap>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox height_request="160">
    <tree headers_visible="false" exported_column="1">
    <label>1|2|3</label>
    <input icon_column="0">cat /tmp/multisystem/multisystem-about</input>
    <variable>tree3</variable>
    <action>xdg-email --utf8 --subject "MultiSystem translation" --body "message" "${tree3}" &</action>
    </tree>
    </hbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    </vbox>
    <variable>tab2</variable>
    <input file>/tmp/multisystem/multisystem-inputtab2</input>
    <action signal="show">refresh:tree</action>
    </notebook>
    </vbox>
    '$(comment Onglet masqué secondaire 1)'
    <vbox spacing="0">
    <notebook show-border="false" show_tabs="false" page="0" labels="0|1|2|3|4|5|6|7|8|9|10|11">
    '$(comment Onglet N°0 N/A)'
    <vbox spacing="0">
    <vbox height_request="370">
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <text><label>N/A</label></text>
    </vbox>
    '$(FCT_HOME)'
    </vbox>
    '$(comment Onglet N°1 Internationalisation)'
    <vbox spacing="0">
    <vbox height_request="370">
    <frame '$(eval_gettext 'Changer de language')'>
    <hbox spacing="0" height_request="32">
    <pixmap>
    <input file icon="config-language"></input>
    <height>32</height>
    <width>32</width>
    </pixmap>
    <text width_request="5" use-underline="true"><label>_</label></text>
    <comboboxtext allow-empty="false" value-in-list="true" tooltip-text="'$(eval_gettext 'Changer de language')'">
    <variable>lister_lang</variable>
    <input>bash -c "FCT_lister_lang"</input>
    <action signal="changed">echo "$(grep "^$lister_lang" "'${dossier}'/lang_list.txt")" >"$HOME/.multisystem/lang_sel.txt"</action>
    <action signal="changed">nohup "${dossier}/gui_multisystem.sh" &</action>
    <action signal="changed">wmctrl -c "MultiSystem-logo"</action>
    <action signal="changed">wmctrl -c "MultiSystem-logo2"</action>
    <action signal="changed">wmctrl -c "VBox"</action>
    <action signal="changed">exit:selang</action>
    </comboboxtext>
    </hbox>
    </frame>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <frame>
    <text use-markup="true" wrap="true" sensitive="false">
    <input>echo "\<b>\<big>'$texte_annonce'\</big>\</b>" | sed "s%\\\%%g"</input>
    </text>
    </frame>
    </vbox>
    '$(FCT_HOME)'
    </vbox>
    '$(comment Onglet N°2 Télécharger des LiveCD)'
    <vbox spacing="0">
    <vbox height_request="370">
    <hbox>
    <entry activates_default="true">
    <variable>QUOI</variable>
    </entry>
    <button name="stylebt">
    <input file stock="gtk-find"></input>
    <variable>RECHERCHER</variable>
    <action>echo "$QUOI" >/tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    </hbox>
    <hbox>
    <button name="stylebt">
    <label>All</label>
    <input file stock="gtk-find"></input>
    <action>clear:QUOI</action>
    <action>echo All | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    <button name="stylebt">
    <label>Audio</label>
    <input file stock="gtk-find"></input>
    <action>clear:QUOI</action>
    <action>echo Audio | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    <button name="stylebt">
    <label>Utility</label>
    <input file stock="gtk-find"></input>
    <action>clear:QUOI</action>
    <action>echo Utility | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    <button name="stylebt">
    <label>Antivirus</label>
    <input file stock="gtk-find"></input>
    <action>clear:QUOI</action>
    <action>echo Antivirus | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    <button name="stylebt">
    <label>Gamer</label>
    <input file stock="gtk-find"></input>
    <action>clear:QUOI</action>
    <action>echo Gamer | tee /tmp/multisystem/multisystem-output-list</action>
    <action>refresh:tree_list</action>
    </button>
    </hbox>
    <tree headers_visible="true" exported_column="3" rules_hint="true">
    <label>Name|Bootloader|Category|URL Download</label>
    <variable>tree_list</variable>
    <input icon_column="0">bash -c "FCT_download_livecd"</input>
    <action>test ${tree_list} && xdg-open ${tree_list} &</action>
    </tree>
    </vbox>
    '$(FCT_HOME)'
    </vbox>
    '$(comment Onglet N°3 Mise à jour)'
    <vbox spacing="0">
    <vbox height_request="370">
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox width_request="400" width_request="50"scrollable="true">
    <text use-markup="true" wrap="true" width-chars="70">
    <input>echo "\<b>\<span color=\"red\">'$(eval_gettext "A ce jour MultiSystem est gratuit\nmais son développement n\\047est pas sans frais!\nSi vous l\\047utilisez régulièrement\net que vous souhaitez qu\\047il continue à évoluer,\nmerci de faire un geste de soutien via paypal.\n\npar avance MERCI!\nFrançois Fabre @frafa")'\</span>\</b>" | sed "s%\\\%%g" | sed "s%\\\\n\\\\n\\\\n%%g"</input>
    </text>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <checkbox>
    <label>"'$(eval_gettext 'Vérifier les mise à jour à chaque lancement')'"</label>
    <variable>checkupdate</variable>
    <default>true</default>
    <action>if true echo true >"'$HOME'/.multisystem/checkupdate"</action>
    <action>if false echo false >"'$HOME'/.multisystem/checkupdate"</action>
    <input>cat "'$HOME'/.multisystem/checkupdate"</input>
    <action>refresh:checkupdate</action>
    <action>refresh:checkupdate2</action>
    </checkbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox spacing="0">
    <radiobutton active="true">
    <label>"'$(eval_gettext "Faire une donation")'"</label>
    <variable>radio1</variable>
    </radiobutton>
    <radiobutton>
    <label>"'$(eval_gettext "Ne pas faire de donation")'"</label>
    <variable>radio2</variable>
    </radiobutton>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <vbox spacing="0">
    <radiobutton active="true">
    <label>"'$(eval_gettext "Mise à jour")'"</label>
    <variable>radio3</variable>
    </radiobutton>
    <radiobutton>
    <label>"'$(eval_gettext "Mise à jour partielle")'"</label>
    <variable>radio4</variable>
    </radiobutton>
    </vbox>
    <pixmap>
    <input file>'${theme_bdo}'</input>
    </pixmap>
    <hbox>
    <button name="stylebt">
    <input file icon="multisystem-update"></input>
    <label>'$(eval_gettext 'Mise à jour')'</label>
    <action>bash -c "FCT_update" &</action>
    <action>wmctrl -c "MultiSystem-logo"</action>
    <action>wmctrl -c "MultiSystem-logo2"</action>
    <action>wmctrl -c "VBox"</action>
    <action type="exit">exit</action>
    </button>
    </hbox>
    </vbox>
    '$(FCT_HOME)'
    </vbox>
    '$(comment Onglet N°4 Déboguer)'
    <vbox spacing="0">
    <vbox height_request="370">
    <frame Debug>
    <vbox scrollable="true">
    <edit>
    <variable>debug_edit</variable>
    <input file>/tmp/multisystem/multisystem-test-usb</input>
    </edit>
    </vbox>
    </frame>
    <hbox homogeneous="true">
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "fdisk -l")'"</label>
    <action>fdisk -l $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'')>/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "parted print")'"</label>
    <action>parted -s $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'') unit MB print >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    </hbox>
    <hbox homogeneous="true">
    <hbox spacing="0">
    <button name="stylebt" width_request="115">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "Afficher mbr")'"</label>
    <action>dd if="$(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'')" bs=512 count=1 | xxd >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    <button name="stylebt" width_request="65">
    <input file icon="gtk-execute"></input>
    <label>"'$(cat /tmp/multisystem/multisystem-selection-usb | sed 's@/dev/@@')'"</label>
    <action>dd if="$(cat /tmp/multisystem/multisystem-selection-usb)" bs=512 count=1 | xxd >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    </hbox>
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "udevadm info")'"</label>
    <action>udevadm info -q all -n $(cat /tmp/multisystem/multisystem-selection-usb | sed '\''s/[0-9]//'\'') >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    </hbox>
    <hbox homogeneous="true">
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "Version Grub2")'"</label>
    <action>grub-install -v >/tmp/multisystem/multisystem-test-usb</action>
    <action>refresh:debug_edit</action>
    </button>
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "Réparer fat32")'"</label>
    <action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
    <action signal="button-press-event">refresh:debug_edit</action>
    <action signal="button-release-event">bash -c "xterm -e FCT_debug_repair"</action>
    <action signal="button-release-event">echo >/tmp/multisystem/multisystem-test-usb</action>
    <action signal="button-release-event">refresh:debug_edit</action>
    </button>
    </hbox>
    <hbox homogeneous="true">
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "Benchmark écriture")'"</label>
    <action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
    <action signal="button-press-event">refresh:debug_edit</action>
    <action signal="button-release-event">bash -c "xterm -e FCT_debug_write"</action>
    <action signal="button-release-event">refresh:debug_edit</action>
    </button>
    <button name="stylebt" width_request="180">
    <input file icon="gtk-execute"></input>
    <label>"'$(eval_gettext "Benchmark lecture")'"</label>
    <action signal="button-press-event">echo '${message_debug}' >/tmp/multisystem/multisystem-test-usb</action>
    <action signal="button-press-event">refresh:debug_edit</action>
    <action signal="button-release-eve

    Lone_Wolf wrote:
    Not sure why the usermod command didn't have the desired effect, but the gpasswd command is the preferred way :
    try
    # gpasswd -a [user] [group]
    I tried this and restarted
    #gpasswd -a <user> adm
    Adding <user> to group adm
    and it exited successfully but still it didn't fix the problem

  • Conserving filename with upload via portal form into blob type

    Hi
    I have a little question. Is there any chance to conserve a filename, which was uploaded into blob column via portal form and then create link for this file with the same name?
    null

    Vlasta,
    You certanly can save the original filename in your form, to do that you will need to add a FILENAME varchar2 column to your table and write a simple Javascript (search this forum for examples) to copy the fileselect value with onChange event. So, when you submit the form with your file the original name will be stored in you table.
    Thanks,
    Dmitry

  • Need Help Running a JavaScript in Acrobat Pro 4

    How does one run a JavaScript in Acrobat Pro 4? I know it is an old version, but does someone still know?

    Ok, I have figured out how to run a JavaScript file. What is wrong with the following code - are these commands not supported in Acrobat 4?
    app.addMenuItem({ cName: "Collate Document", cParent: "Tools", nPos: 0, cExec: "collate()"});
    Title: Collate Document
    Purpose: User is prompted to select document to insert/collate.
    Author: Sean Stewart, ARTS PDF, www.artspdf.com
    function collate()
    this.insertPages (0,"scan0002.pdf", 0);
    // create an array to use as the rect parameter in the browse for field
    var arRect = new Array();
    arRect[0] = 0;
    arRect[1] = 0;
    arRect[2] = 0;
    arRect[3] = 0;
    // create a non-visible form field to use as a browse for field
    var f = this.addField("txtFilename", "text", this.numPages - 1, arRect);
    f.delay = true;
    f.fileSelect = true;
    f.delay = false;
    // user prompted to select file to collate the open document with
    app.alert("Select the PDF file to merge with; this should be the odd-numbered pages:")
    // open the browse for dialog
    f.browseForFileToSubmit();
    var oddDocPath = f.value;
    var halfOfPages = this.numPages;
    // insert pages from selected document into open document
    for (var i = 0;i < halfOfPages; i++) {
    this.insertPages(halfOfPages-i, evenDocPath, i);
    // remove unused field
    this.removeField("txtFilename");

  • How do I create a Windows directory browser in an applet...??

    I want it to work like most other browser windows work for selecting a file from a harddrive. I want it to be able to browse through different folders to find a file to be selected and then use that file to do something. Is there a java class already built for this? Can someone help me asap? If you want me to explain more.. I'd be happy to.

    There's an example
    import java.io.*;
    JFileChooser fileSelected = new JFileChooser();
    fileSelected.setFileSelectionMode(JFileChooser.FILES_ONLY);
    int answer = fileSelected.showOpenDialog(this);
    File fileName = fileSelected.getSelectedFile();
    So now "fileName" is the filename that you selected, with his root.
    You can do what ever you want with it.
    "answer" contain 0 if you selected one file, or 1 if you press Cancel.
    Stef

  • Trying to load MP3 from desktop to AIR application

    I'm trying to load an MP3 file into an Air application.
    Here's some code. The first 2 lines are in my constructor
    fileToOpen.browseForOpen("Open", [new FileFilter("MP3",
    "*.mp3")]);
    fileToOpen.addEventListener(Event.SELECT, fileSelected);
    private function fileSelected(event:Event):void
    var stream:FileStream = new FileStream();
    trace(fileToOpen.nativePath);
    // sound = new Sound(new URLRequest(fileToOpen.nativePath));
    // trace(sound);
    stream.open(event.target, FileMode.READ);
    trace(stream.bytesAvailable);
    sound = new Sound(stream.readBytes(stream.bytesAvailable));
    channel = sound.play(00000);
    addEventListener(Event.ENTER_FRAME, onEnterFrame);
    Using URLRequest gives me the error Error #2044: Unhandled
    IOErrorEvent:. text=Error #2032: Stream Error. I can't seem to load
    a file when I give it the full path. Then with the file stream, I
    don't even know what I'm doing. I don't know which method I'm
    supposed to use to load the file into a sound object. Please
    help...

    I figured it out. I tried url instead of nativePath for the
    file object and it worked.

  • Merge even and odd pages

    My printer won't do duplex scan, and I need to scan a large amount of 2-sided text. So I'm going to create one document of the odd-numbered pages, and another of the even-numbered pages. I know I can manually combine them into the right order, but I'm hoping there is some automatic way to merge the documents - one of odd-numbered pages, and one of even-numbered pages - into one document in which the pages are in the correct numerical order.
    Is there?

    Hey Seth and others:
    Thanks for the positive feedback. I found myself needing to do some collating and reversing again, and discovered that the script didn't show up in Acrobat 9. So I updated the script, and moved the menu item into the "Document" menu.
    Unfortunately I can't figure out how to attach the updated script in the new form editor, so I'll inline it. Copy the following script into a file and install it into your Javascripts folder, as before.
    // Complements: Planet PDF (http://www.planetpdf.com/)
    // Modified by Jeff Baitis for Acrobat 9 compatibility
    // Improved Collate function with status bar.
    // Add a menu item to reverse all pages in the active document
    app.addMenuItem({ cName: "Reverse", cParent: "Document", cExec: "trustedReversePages();", cEnable: "event.rc = (event.target != null);", nPos: 0 });
    app.addMenuItem({ cName: "Collate", cParent: "Document", cExec: "trustedCollatePages();", cEnable: "event.rc = (event.target != null);", nPos: 0 });
    trustedReversePages = app.trustedFunction(function()
      app.beginPriv(); // Explicitly raise privileges
      var t = app.thermometer;
      t.duration = this.numPages;
      t.begin();
      for (i = this.numPages - 1; i >= 0; i--)
        t.value = (i-this.numPages)*-1;
        this.movePage(i);
        t.text = 'Moving page ' + (i + 1);
      t.end();
      app.endPriv();
    // Collating pages
      Title: Collate Document
      Purpose: User is prompted to select document to insert/collate.
      Author: Sean Stewart, ARTS PDF, www.artspdf.com
    trustedCollatePages = app.trustedFunction(function()
      app.beginPriv(); // Explicitly raise privileges
      // create an array to use as the rect parameter in the browse for field
      var arRect = new Array();
      arRect[0] = 0;
      arRect[1] = 0;
      arRect[2] = 0;
      arRect[3] = 0;
      // create a non-visible form field to use as a browse for field
      var f = this.addField("txtFilename", "text", this.numPages - 1, arRect);
      f.delay = true;
      f.fileSelect = true;
      f.delay = false;
      // user prompted to select file to collate the open document with
      app.alert("Select the PDF file to merge with")
      // open the browse for dialog
      f.browseForFileToSubmit();
      var evenDocPath = f.value;
      var q = this.numPages;
      var t = app.thermometer;
      t.duration = q;
      t.begin();
      // insert pages from selected document into open document
      for (var i = 0; i < q; i++) {
          var j = i*2;
          this.insertPages(j, evenDocPath, i);
          t.value = i;
          t.text = 'Inserting page ' + (i+1);
      t.end();
      // remove unused field
      this.removeField("txtFilename");
      app.endPriv();
    Have fun
    Edited: Found some bugs, fixed the code up a bit

  • How to use forfiles= without recreating over and over?

    I’m struggling trying to get some file testing done and can’t figure what the right combination of commands should be. The goal is to have a number of files created (64, for example), then run different tests on those files, varying the number of files tested (from 4 doubled to 64, for example).  Things work fine if I have the rd section of the script set as:
    rd=f4,fwd=fwd4,files=4,format=yes
    rd=f8,fwd=fwd8,files=8,format=yes
    rd=f16,fwd=fwd16,files=16,format=yes
    rd=f32,fwd=fwd32,files=32,format=yes
    rd=f64,fwd=fwd64,files=64,format=yes
    The problem with this is that if I want to repeat the test or run a different test, the files will be recreated, taking much longer than necessary, as well as possibly causing storage specific issues. If I use “format=restart” or “format=no”, I end up with an error message such as:
    old depth=1; new depth=1
    old width=1; new width=1
    old files=64; new files=4
    I’ve tried using”forfiles=(4-64,d)”, but that also gives me errors similar to the above. The overall goal is to have a directory with a specific number of files of the specified length (files=64,format=only on a special rd line?), then run multiple tests, varying the number of files to be tested without having to recreate them every time. I’ve tried all combinations of forfiles, format=, and most other keywords I can think of, but just can’t seem to be able to get things to work without vdbench telling me that I can’t test ’n’ files if the directory contains a number of files other than ’n’. Same file sizes in all cases; just want to test a different number of them.
    The real question is how I can use the forfiles= command in a script that will be run many times without having to create the files each and every time. I’m clearly missing an important concept, but after a week of trying, I can’t figure out what it is.
    Any ideas?

    Correct me if I am wrong: You want to have 64 files created, and then test using, then 8, then 16, etc.
    'forfiles' won't do this; the file count is an integral part of of a file system structure and can not be changed without starting all over with a complete format.
    How about using for 'workingsetsize' parameter? This won't allow you to directly specify the amount of files, but if your file sizes are all the same then you'll just have do do a little math.
    I just ran this:
    fsd=default,depth=1,width=1,files=100,size=10k
    fsd=fsd1,anchor=r:\junk\fsd1
    fwd=fwd1,fsd=fsd1,xfersize=4k,fileio=random,fileselect=random,threads=1
    rd=default,elapsed=3,interval=1
    rd=rd1,fwd=*,operations=(read),fwdrate=100,format=once,forwss=(20k,40k,60k)
    Note the use of 'format=once'.
    This is the result:
    C:\vdbench504\output>grep -i created logfile.html
    10:31:59.151 FILE_CREATES        Files created:                               100     100/sec
    10:31:59.152 DIRECTORY_CREATES   Directories created:                           1       1/sec
    10:31:59.235 localhost-0: Created workingset=20k subset for anchor=r:\junk\fsd1 using 2 of 100 files.
    10:32:03.405 localhost-0: Created workingset=40k subset for anchor=r:\junk\fsd1 using 4 of 100 files.
    10:32:07.297 localhost-0: Created workingset=60k subset for anchor=r:\junk\fsd1 using 6 of 100 files.
    Hope this helps,
    Henk.

  • Vdbench50403rc9: updates to Vdbench50402

    Attached: vdbench50403rc9.zip
    Zip file includes PDF.
    I expect, or better yet, hope, that this will be the next GA version Vdbench50403.
    I just want to make sure that I have not broken anything, so I'll wait to see if any new or old problems show up before I declare this GA. So please give this a try. Keep in mind, this is still not considered 'done'.
    Changes since 50402
    Vdbench now requires java 1.6 or higher.
    Data Validation -vt or 'validate=(yes,time)' option did not store last time read, only last time written.
    The aforementioned -vt option will now report 'last time block was valid' in milliseconds instead of just in seconds.
    If a Data Validation pre-read failed and the 'read immediately' -vr or 'validate=(yes,read)' option was used the corrupted block was reported twice.
    False corruptions when SDs or FSDs were allowed to move between slaves.
    'slow socket message' display has moved from the console to logfile.html.
    When running with a large amount of SDs and slaves the amount of detailed performance statistics transferred each interval from the slaves to the master could become overwhelming resulting in 'slow socket' messages. Since details response time histograms were only reported after normal termination sending this huge amount of information to the master was a waste of time. Histogram data therefore will only be sent over at normal termination. This fix should have a positive impact on those test runs where the detail interval statistics are not reported in time.
    New option: messagescan=nnnn, where the scan for messages in /var/adm/messages is terminated after 'nnnn' messages. Default is to stop scanning and therefore reporting after 1000 lines.
    To continue making it clear that Vdbench is owned an distributed by Oracle, a copyright statement is now displayed each time Vdbench is executed: one on the console and one on summary.html and logfile.html. This is an extra reminder that companies that distribute Vdbench parameter files are indeed distributing parameter files only but that they should not imply that they also own or distribute Vdbench.
    Java master/slave socket connections using port 5570 are now released as soon as the master/slave connection has been established, freeing up this port for other Vdbench runs. This means that earlier default limit of 10 concurrent Vdbench executions now is virtually unlimited.
    New file selection option: fileselect=(poisson,3) allowing for a more skewed control of which files will be used. That comes in handy when you have millions of different files.
    New 'format=' option: format=(no,complete) where you tell Vdbench to 'trust you' and that the format indeed has been done but that there is no need to do a huge amount of directory searches.
    Fixing a serious bug that in Vdbench50401 under certain circumstances would NOT honor requested workload skew. The fact that the skew failed was still reported however.
    A new 'skew.html' report that now gives a lot of detailed information about the amount of work done for an SD, WD, Host, or Slave. And this of course because of the previously mentioned bug.
    A new general parameter: abort_failed_skew=nnn where Vdbench will abort if the workload skew misses by nnn%.
    'Shared threads' when using concatenated SDs: though the objective has always been for the rd=xxx,….,threads=nnn parameter for concatenated SDs to be a TOTAL amount of SHARED threads, the code erroneously treated the value as 'number of threads per workload'. This has been corrected.
    Workload skew control only works when all workloads 'compete' with each other on every slave/JVM. There were scenarios due to specified slave and thread counts that not every workload ran on every slave. Vdbench now will dynamically round thread counts upwards so that this no longer can happen.
    GcTracker: Information will be displayed on each slave's stdout.html report about the amount of java Garbage Collection that has been done. This usually is not a problem until you start working with millions of directories and/or files.
    New file system 'operation=access' functionality.
    File system output now will ONLY display the columns for getattr/setattr/access if those operations have been specifically requested.
    Status.html: an 'official' API to be used who want to monitor the current status of Vdbench, typically some 'wrapper' around Vdbench.
    OSX: OSX does not use the 'normal' flags that other types of Unix can pass during a file open() call. They use fcntl() instead. Vdbench has been fixed to now use fcntl() ONLY for OSX.
    Vdbench now also has been tested on Raspberry Pi (This was just a fun little project).
    I updated the documentation to the best of my ability to include everything that has changed.m

    FIXED!!!
    In addition to the other things I previously mentioned:
    Turned OFF Wifi (Settings>Wi-Fi>Off)
    Turned OFF Dynamic Wallpaper (Settings>Wallpapers & Brightness>Choose a wallpaper from the Stills collection)
    Turned ON Reduce Motion (Settings>General>Accessibility>Reduce Motion>set to ON)
    Turned OFF Background App Refresh (Settings>General>Background App Refresh>Off)
    Turned OFF Location Services (Settings>General>Privacy>Location Services>Off)
    Manually kill all running apps frequently (Double tap HOME button, swipe running apps UP to close)
    Set screen brightness very low (Settings>Wallpapers & Brightness>set slider about 50-60%, make sure Auto-Brightness is ON)
    I found that disabling Mail Fetch stopped the ridiculous battery drain.
    Settings>Mail, Contacts, Calendars>Fetch New Data>Push ->set to disabled
    Now my iPhone 5 has about the same battery life as I experienced before the upgrade. I can still go into Mail and it will update just fine like before.
    Hopefully this helps. I'm hoping this is just temporary and Apple fixes this with 7.0.1.

  • Strange JButton appearance for all LAFs except Windows

    It took me a while to figure out how to repeat this problem, but I finally did. I have a simple BoxLayout container in a JFrame, and with Windows Look and Feel it looks as expected. With any other LAF on my system (Metal, Windows Classic, CDE/Motif) all buttons except one are displayed as if their insets are null. The button border is confined very close to the button text. Calling setSize() on the button doesn't make any difference.
    What makes it strange is that I can't see why one button is displayed properly. And even stranger is the fact that it's not the button position that determines which one looks correct. Take a look at the test code below, which is a stripped down executable extract of my program. The JButton object "settings" is always displayed correctly, even If you re-arrange the arguments to the cbButtonPanel.add() methods so that "settings" is in a different position. I can't see anything different about how settings is defined or configured compared to the other buttons. I even gave them the same button text to eliminate that as the source of the difference.
    If you run the test code with no program argument, it will default to Windows Look and Feel, and the buttons will look as I intended them to. But enter a LAF name for the argument (See the names provided on the console when you run the program) other than Windows and you'll see that all but one button are not displayed properly. (Note that for any multi-word LAF name, e.g. Windows Classic, you need to enclose the argument in quotes.)
    The code seems to be a straightforward implementation of a BoxLayout managed container, as documented in the javadocs and the tutorial. Am I doing something wrong that Windows LAF lets me get away with?
    import java.awt.Container;
    import java.awt.Dimension;
    import java.util.HashMap;
    import javax.swing.BorderFactory;
    import javax.swing.Box;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;
    import javax.swing.UIManager.LookAndFeelInfo;
    import javax.swing.border.Border;
    public class RcbGuiTest{
         JFrame frame = null;
         int width;
         int height;
         JTextField fileSelect = null;
         JPanel cbButtonPanel;
         JButton sendFile = null;
         JButton copyCBToCB = null;
         JButton copyCBToFile = null;
         JButton settings = null;
         JButton restart = null;
         JMenuBar menuBar;
         JMenu helpMenu;
         JMenuItem about;
         JMenuItem help;
         JMenuItem readme;
         JMenuItem rcbWeb;
         HashMap lafMap = new HashMap();
         String lafName = "";
         public static void main(String[] args){
              if (args.length == 0){
                   args = new String[]{"Windows"};
              final RcbGuiTest test = new RcbGuiTest(args[0]);
              SwingUtilities.invokeLater(new Runnable(){
                   public void run(){
                        test.createAndShowGUI();
         public RcbGuiTest(String lafName){
              this.lafName = lafName;
         public void createAndShowGUI(){
              Border raisedBevel =  BorderFactory.createRaisedBevelBorder();
              frame = new JFrame("RCB Control Panel");
              //set up menu items
              menuBar = new JMenuBar();
              helpMenu = new JMenu("Help");
              about = new JMenuItem("About RCB");
              help = new JMenuItem("RCB Help");
              readme = new JMenuItem("Readme File");
              rcbWeb = new JMenuItem("RCB on the Web");
              helpMenu.add(about);
              helpMenu.add(help);
              helpMenu.add(readme);
              helpMenu.add(rcbWeb);
              menuBar.add(helpMenu);
              frame.setJMenuBar(menuBar);
              Container contentPane = frame.getContentPane();
              JLabel fileSelectLabel = new JLabel(
                        "Enter file name, select files, or drag and drop files");
              fileSelect = new JTextField(30);
              fileSelect.setMinimumSize(new Dimension(250,20));
              fileSelect.setSize(new Dimension(250,20));
              sendFile = new JButton("Button");
              sendFile.setMinimumSize(new Dimension(120,25));
              sendFile.setSize(new Dimension(120,25));
              JButton selectFile = new JButton("Button");
              copyCBToCB = new JButton("Button");
              copyCBToFile = new JButton("Button");
              settings = new JButton("Button");
              restart = new JButton("Button");
              sendFile.setBorder(raisedBevel);
              selectFile.setBorder(raisedBevel);
              copyCBToCB.setBorder(raisedBevel);
              copyCBToFile.setBorder(raisedBevel);
              restart.setBorder(raisedBevel);
              JPanel labelPanel = new JPanel();
              labelPanel.setLayout(new BoxLayout(labelPanel,BoxLayout.X_AXIS));
              labelPanel.add(Box.createRigidArea(new Dimension(5,20)));
              labelPanel.add(fileSelectLabel);
              labelPanel.add(Box.createHorizontalGlue());
              JPanel fieldPanel = new JPanel();
              fieldPanel.setLayout(new BoxLayout(fieldPanel, BoxLayout.X_AXIS));
              fieldPanel.add(Box.createRigidArea(new Dimension(5,20)));
              fieldPanel.add(fileSelect);
              fieldPanel.add(Box.createRigidArea(new Dimension(5,20)));
              JPanel fileButtonPanel = new JPanel();
              fileButtonPanel.setLayout(new BoxLayout(fileButtonPanel, BoxLayout.X_AXIS));
              fileButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              fileButtonPanel.add(sendFile);
              fileButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              fileButtonPanel.add(selectFile);
              fileButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              fileButtonPanel.add(restart);
              fileButtonPanel.add(Box.createHorizontalGlue());
              cbButtonPanel = new JPanel();
              cbButtonPanel.setLayout(new BoxLayout(cbButtonPanel, BoxLayout.X_AXIS));
              cbButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              cbButtonPanel.add(copyCBToCB);
              cbButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              cbButtonPanel.add(settings);
              cbButtonPanel.add(Box.createRigidArea(new Dimension(5,0)));
              cbButtonPanel.add(copyCBToFile);
              cbButtonPanel.add(Box.createHorizontalGlue());
              contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
              contentPane.add(Box.createRigidArea(new Dimension(0,5)));
              contentPane.add(labelPanel);
              contentPane.add(Box.createRigidArea(new Dimension(0,5)));
              contentPane.add(fieldPanel);
              contentPane.add(Box.createRigidArea(new Dimension(0,5)));
              contentPane.add(fileButtonPanel);
              contentPane.add(Box.createRigidArea(new Dimension(0,5)));
              contentPane.add(cbButtonPanel);
              contentPane.add(Box.createRigidArea(new Dimension(0,5)));
              width = 320;
              height = 180;
              fileSelect.setMaximumSize(new Dimension(width,20));
              frame.setMinimumSize(new Dimension(width, height));
              frame.setResizable(false);
              LookAndFeelInfo[] laf = UIManager.getInstalledLookAndFeels();
              for (int i= 0; i<laf.length; i++){
                   System.out.println("LAF Name: " + laf.getName());
                   lafMap.put(laf[i].getName(), laf[i].getClassName());
              String lafClassName = "";
              try {
                   UIManager.setLookAndFeel( lafClassName = (String)lafMap.get(lafName));
                   System.out.println("Using Look and Feel " + lafName + "\tclass name: " + lafClassName);
              } catch (ClassNotFoundException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              } catch (InstantiationException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              } catch (IllegalAccessException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              } catch (UnsupportedLookAndFeelException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              SwingUtilities.updateComponentTreeUI(frame);
              frame.setVisible(true);

    The problem turned out to be the setBorder() invocations I was making on the JButtons. This was left over from when I originally used a null layout manager, and the setBounds() calls were making the buttons appear at their desired size. The clue came when I discovered that I was setting the border on all buttons except settings, the one that was behaving properly. Why it behaved as expected with Windows LAF I have no idea.

Maybe you are looking for

  • Unable to see planning application and dimension menus under navigate tab

    Dears Unable to see planning application and dimension menus under navigate tab in EPM 11.1.1.1 workspace. Is there any configuration lost? All EPM service have already started. Thx Hector

  • Array Index out of bound exception

    public Name[] getName() {           Name[] retVal = new Name[0];           retVal[0] = this.getNameInstance();           return retVal;      public void setName(Name[] theName) {           theName[0]=this.getNameInstance();      private Name myNameIn

  • How can I save song created in GarageBand as a MIDI file

    Is this possible, I'm an old user of Cubase, and before SMPTETrack (someone remembers?) so Midi files are for me an obvious think. In GarageBand a new nice program for begginers and fans of music easily produced I found a little problems finding how

  • ITunes Producer ebook delivery error

    Hi, I have scowered the forums and tried to Google the answer but I can't figure out the problem. I am getting the same error whenever I try to deliver my iBook to Apple: ERROR ITMS-9000: "index.html(11): element "img" missing required attribute "alt

  • X60s will not sleep in windows 7

    After installing Win7 Pro and running all the windows updates etc I have an issue that I instruct the laptop to sleep it shuts the screen off but never enters sleep mode also I am never able to revivie it except for power switch action Help please