# �vers�ttning av drakwizard-sv-sv.po till svenska # �vers�ttning av drakwizard-sv.po till svenska # Drakwizard wizard's Portable Object Template file # Copyright (C) 2002 Free Software Foundation, Inc. # # NOTE: sometimes "\q" appear in msgid around a word; the \q sequences # are for quote marks; put them in the translation too; or put proper # quotation marks for your language. # Mattias Newzella <newzella@linux.nu>, 2002. # # msgid "" msgstr "" "Project-Id-Version: drakwizard-sv\n" "POT-Creation-Date: 2002-09-12 23:31+0200\n" "PO-Revision-Date: 2002-09-14 21:08+0000\n" "Last-Translator: Mattias Newzella <newzella@linux.nu>\n" "Language-Team: svenska <sv@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0beta2\n" #: ../client_wizard/client.wiz_.c:1 msgid "" "A client of your local network is a machine connected to the network having " "its own name and IP number." msgstr "" "En klient p� ditt lokala n�tverk �r en dator ansluten till n�tverket som har " "ett eget namn och IP-nummer." #: ../client_wizard/client.wiz_.c:2 ../dns_wizard/dns.wiz_.c:2 msgid "This is not a valid address... press next to continue" msgstr "Detta �r inte en giltig adress, klicka p� N�sta f�r att forts�tta" #: ../client_wizard/client.wiz_.c:3 msgid "" "Press next if you want to change the already existing value, or back to " "correct your choice." msgstr "" "Klicka p� N�sta om du vill �ndra befintligt v�rde, eller Tillbaka f�r att " "korrigera ditt val." #: ../client_wizard/client.wiz_.c:4 ../db_wizard/db.wiz_.c:1 #: ../dhcp_wizard/dhcp.wiz_.c:3 ../dns_wizard/dns.wiz_.c:4 #: ../firewall_wizard/firewall.wiz_.c:4 ../ftp_wizard/ftp.wiz_.c:2 #: ../news_wizard/news.wiz_.c:4 ../nfs_wizard/nfs.wiz_.c:2 #: ../postfix_wizard/postfix.wiz_.c:2 ../proxy_wizard/proxy.wiz_.c:36 #: ../samba_wizard/samba.wiz_.c:21 ../server_wizard/server.wiz_.c:30 #: ../web_wizard/web.wiz_.c:4 msgid "Congratulations" msgstr "Gratulerar" #: ../client_wizard/client.wiz_.c:5 msgid "DNS Client Wizard" msgstr "Klientguide f�r DNS" #: ../client_wizard/client.wiz_.c:6 msgid "" "The wizard collected the following parameters needed to add a client to your " "network:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att l�gga till en " "klient till n�tverket:" #: ../client_wizard/client.wiz_.c:7 ../dhcp_wizard/dhcp.wiz_.c:8 #: ../dns_wizard/dns.wiz_.c:6 msgid "System error, no configuration done" msgstr "Systemfel, ingen konfiguration utf�rd" #: ../client_wizard/client.wiz_.c:8 msgid "Client name" msgstr "Klientnamn" #: ../client_wizard/client.wiz_.c:9 msgid "Adding a new client to your network" msgstr "L�gger till en ny klient till n�tverket" #: ../client_wizard/client.wiz_.c:10 ../dhcp_wizard/dhcp.wiz_.c:9 #: ../dns_wizard/dns.wiz_.c:7 ../firewall_wizard/firewall.wiz_.c:8 #: ../ftp_wizard/ftp.wiz_.c:4 ../news_wizard/news.wiz_.c:8 #: ../proxy_wizard/proxy.wiz_.c:11 ../samba_wizard/samba.wiz_.c:5 #: ../server_wizard/server.wiz_.c:8 ../web_wizard/web.wiz_.c:8 msgid "Configure" msgstr "Konfigurera" #: ../client_wizard/client.wiz_.c:11 msgid "Client identification:" msgstr "Klientidentifiering:" #: ../client_wizard/client.wiz_.c:12 msgid "(you don't need to type the domain after the name)" msgstr "(du beh�ver inte ange dom�nen efter namnet)" #: ../client_wizard/client.wiz_.c:13 msgid "" "If you choose to configure now, you will automatically continue with the " "Client configuration" msgstr "" "Om du v�ljer att konfigurera nu kommer du automatiskt att forts�tta med " "konfigurationen av klienten" #: ../client_wizard/client.wiz_.c:14 msgid "" "The server will use the informations you enter here to make the name of the " "client available to other machines into your network." msgstr "" "Servern kommer att anv�nda informationen du anger h�r f�r att g�ra namnet p� " "klienten tillg�ngligt f�r alla andra datorer i ditt n�tverk." #: ../client_wizard/client.wiz_.c:15 msgid "You have entered a machine name or an IP number already used." msgstr "Du har angett ett datornamn eller en IP-adress som redan anv�nds." #: ../client_wizard/client.wiz_.c:16 msgid "The wizard successfully added the client." msgstr "Guiden lyckades med att l�gga till klienten." #: ../client_wizard/client.wiz_.c:17 msgid "Name of the machine:" msgstr "Datorns namn:" #: ../client_wizard/client.wiz_.c:18 ../db_wizard/db.wiz_.c:9 #: ../dhcp_wizard/dhcp.wiz_.c:12 ../dns_wizard/dns.wiz_.c:12 #: ../ftp_wizard/ftp.wiz_.c:7 ../proxy_wizard/proxy.wiz_.c:17 #: ../samba_wizard/samba.wiz_.c:7 ../server_wizard/server.wiz_.c:13 #: ../web_wizard/web.wiz_.c:11 msgid "OK" msgstr "OK" #: ../client_wizard/client.wiz_.c:19 msgid "" "Your client on the network will be identified by name, as in clientname." "company.net. Every machine on the network must have a (unique) IP address, " "in the usual dotted syntax." msgstr "" "Din klient p� n�tverket kommer att bli identifierad genom namn, som t ex " "klientnamn.f�retag.se. Varje dator p� n�tverket m�ste ha en unik IP-adress i " "den vanliga punktsyntaxen." #: ../client_wizard/client.wiz_.c:20 msgid "" "Note that the given IP number and client name should be unique in the " "network." msgstr "" "Observera att angivet IP-nummer och klientnamn m�ste vara unika i n�tverket." #: ../client_wizard/client.wiz_.c:21 msgid "IP number of the machine:" msgstr "Datorns IP-nummer:" #: ../client_wizard/client.wiz_.c:22 ../db_wizard/db.wiz_.c:18 #: ../dhcp_wizard/dhcp.wiz_.c:15 ../dns_wizard/dns.wiz_.c:19 #: ../firewall_wizard/firewall.wiz_.c:19 ../ftp_wizard/ftp.wiz_.c:14 #: ../news_wizard/news.wiz_.c:20 ../nfs_wizard/nfs.wiz_.c:4 #: ../postfix_wizard/postfix.wiz_.c:16 ../proxy_wizard/proxy.wiz_.c:48 #: ../samba_wizard/samba.wiz_.c:33 ../server_wizard/server.wiz_.c:49 #: ../time_wizard/time.wiz_.c:53 ../web_wizard/web.wiz_.c:20 msgid "Quit" msgstr "Avsluta" #: ../client_wizard/client.wiz_.c:23 ../db_wizard/db.wiz_.c:19 #: ../postfix_wizard/postfix.wiz_.c:17 ../proxy_wizard/proxy.wiz_.c:47 #: ../samba_wizard/samba.wiz_.c:32 msgid "Network not configured yet" msgstr "N�tverk inte konfigurerat �nnu" #: ../client_wizard/client.wiz_.c:24 msgid "This wizard will help you in adding a new client in your local DNS." msgstr "" "Den h�r guiden hj�lper dig att l�gga till en ny klient i din lokala DNS." #: ../client_wizard/client.wiz_.c:25 msgid "" "To accept these values, and add your client, click the Next button or use " "the Back button to correct them." msgstr "" "F�r att acceptera dessa v�rden och f�r att l�gga till din klient, klicka p� " "N�sta eller anv�nd Tillbaka f�r att korrigera dem." #: ../client_wizard/client.wiz_.c:26 msgid "Press next to begin, or Cancel to leave this wizard." msgstr "Klicka p� N�sta f�r att b�rja eller Avbryt f�r att avsluta guiden." #: ../client_wizard/client.wiz_.c:27 ../db_wizard/db.wiz_.c:23 #: ../postfix_wizard/postfix.wiz_.c:25 ../proxy_wizard/proxy.wiz_.c:52 #: ../samba_wizard/samba.wiz_.c:36 msgid "" "Press next to configure these parameters now, or Cancel to exit this wizard." msgstr "" "Klicka p� N�sta f�r att konfigurera dessa v�rden nu, eller Avbryt f�r att " "avsluta guiden." #: ../client_wizard/client.wiz_.c:28 ../dns_wizard/dns.wiz_.c:21 msgid "You need to be root to run this wizard" msgstr "Du m�ste vara root f�r att k�ra den h�r guiden" #: ../client_wizard/client.wiz_.c:29 msgid "Client IP:" msgstr "Klient-IP:" #: ../client_wizard/client.wiz_.c:30 ../db_wizard/db.wiz_.c:24 #: ../postfix_wizard/postfix.wiz_.c:27 ../proxy_wizard/proxy.wiz_.c:31 #: ../samba_wizard/samba.wiz_.c:17 msgid "" "You have to configure the basic network parameters before launching this " "wizard." msgstr "" "Du m�ste konfigurera de grundl�ggande n�tverksparametrarna innan du startar " "den h�r guiden." #: ../client_wizard/client.wiz_.c:31 ../dns_wizard/dns.wiz_.c:24 #: ../postfix_wizard/postfix.wiz_.c:29 ../proxy_wizard/proxy.wiz_.c:55 msgid "Warning:" msgstr "Varning:" #: ../db_wizard/db.wiz_.c:2 msgid "Configuration Wizard" msgstr "Konfigurationsguide" #: ../db_wizard/db.wiz_.c:3 msgid "MySQL Database Server" msgstr "MySQL-databasserver" #: ../db_wizard/db.wiz_.c:4 msgid "Please enter a username and password to add a user" msgstr "Ange ett anv�ndarnamn och ett l�senord f�r att l�gga till en anv�ndare" #: ../db_wizard/db.wiz_.c:5 msgid "User addition" msgstr "L�gg till anv�ndare" #: ../db_wizard/db.wiz_.c:6 msgid "" "To accept this value, and configure your server, click on \\qConfirm\\q or " "use the Back button to correct them." msgstr "" "F�r att acceptera detta v�rde och f�r att konfigurera servern, klicka p� " "\\qBekr�fta\\q eller anv�nd Tillbaka f�r att korrigera dem." #: ../db_wizard/db.wiz_.c:7 msgid "The wizard successfully configured your MySQL Database Server" msgstr "Guiden lyckades med att konfigurera MySQL-databasservern" #: ../db_wizard/db.wiz_.c:8 msgid "Database Server" msgstr "Databasserver" #: ../db_wizard/db.wiz_.c:10 msgid "Root Password:" msgstr "Root-l�senord:" #: ../db_wizard/db.wiz_.c:11 msgid "Confirm" msgstr "Bekr�fta" #: ../db_wizard/db.wiz_.c:12 ../ftp_wizard/ftp.wiz_.c:8 #: ../web_wizard/web.wiz_.c:14 msgid "Sorry, you must be root to do this..." msgstr "Tyv�rr, du m�ste vara root f�r att g�ra det h�r." #: ../db_wizard/db.wiz_.c:13 msgid "Password:" msgstr "L�senord:" #: ../db_wizard/db.wiz_.c:14 msgid "" "If you choose to configure now, you will automatically continue with the " "MySQL Database configuration" msgstr "" "Om du v�ljer att konfigurera nu kommer du automatiskt att forts�tta med " "konfigurationen av MySQL-databasen" #: ../db_wizard/db.wiz_.c:15 msgid "" "This wizard will help you configuring the MySQL Database Server for your " "network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera MySQL-databasservern f�r ditt " "n�tverk." #: ../db_wizard/db.wiz_.c:16 msgid "Username:" msgstr "Anv�ndarnamn:" #: ../db_wizard/db.wiz_.c:17 msgid "Note: This user will have all permissions" msgstr "Observera: Den h�r anv�ndaren kommer att ha alla beh�righeter" #: ../db_wizard/db.wiz_.c:20 msgid "Add" msgstr "L�gg till" #: ../db_wizard/db.wiz_.c:21 msgid "Please type a password for the root user:" msgstr "Ange ett l�senord f�r anv�ndaren root:" #: ../db_wizard/db.wiz_.c:22 msgid "Configuring the MySQL Database Server" msgstr "Konfigurerar MySQL-databasservern" #: ../db_wizard/db.wiz_.c:25 msgid "To run your server, you first need to specify a root password" msgstr "F�r att k�ra servern m�ste du f�rst ange ett root-l�senord" #: ../db_wizard/db.wiz_.c:26 msgid "MySQL Database wizard" msgstr "Guide f�r MySQL-databas" #: ../db_wizard/db.wiz_.c:27 msgid "" "The wizard collected the following parameters needed to configure your MySQL " "Database Server" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera MySQL-" "databasservern" #: ../dhcp_wizard/dhcp.wiz_.c:1 ../dns_wizard/dns.wiz_.c:1 #: ../server_wizard/server.wiz_.c:1 msgid "IP addresses are a dotted list of four numbers smaller than 256." msgstr "IP-adresser �r en lista i form av fyra nummer mindre �n 256." #: ../dhcp_wizard/dhcp.wiz_.c:2 msgid "" "Select the range of addresses assigned to the workstations by the DHCP " "service; unless you have special needs, you can safely accept the proposed " "values." msgstr "" "V�lj adressomf�nget som ska tilldelas arbetsstationer av DHCP-tj�nsten.Om du " "inte har speciella behov kan du acceptera de f�rvalda v�rdena." #: ../dhcp_wizard/dhcp.wiz_.c:4 msgid "Highest IP Address:" msgstr "H�gsta IP-adress:" #: ../dhcp_wizard/dhcp.wiz_.c:5 msgid "Range of addresses used by dhcp" msgstr "Adressomf�ng som anv�nds av DHCP" #: ../dhcp_wizard/dhcp.wiz_.c:6 ../dns_wizard/dns.wiz_.c:5 #: ../firewall_wizard/firewall.wiz_.c:6 ../ftp_wizard/ftp.wiz_.c:3 #: ../news_wizard/news.wiz_.c:7 ../postfix_wizard/postfix.wiz_.c:4 #: ../proxy_wizard/proxy.wiz_.c:37 ../samba_wizard/samba.wiz_.c:22 #: ../server_wizard/server.wiz_.c:33 ../web_wizard/web.wiz_.c:7 msgid "" "To accept these values, and configure your server, click the Next button or " "use the Back button to correct them." msgstr "" "F�r att acceptera dessa v�rden och f�r att konfigurera servern, klicka p� " "N�sta eller anv�nd Tillbaka f�r att korrigera dem." #: ../dhcp_wizard/dhcp.wiz_.c:7 msgid "" "DHCP is a service that automatically assigns networking addresses to your " "workstations." msgstr "" "DHCP �r en tj�nst som automatiskt tilldelar n�tverksadresser till " "arbetsstationer." #: ../dhcp_wizard/dhcp.wiz_.c:10 ../news_wizard/news.wiz_.c:11 #: ../samba_wizard/samba.wiz_.c:25 ../server_wizard/server.wiz_.c:36 msgid "Fix it" msgstr "Fixa det" #: ../dhcp_wizard/dhcp.wiz_.c:11 msgid "The wizard successfully configured the DHCP services of your server." msgstr "Guiden lyckades med att konfigurera DHCP-tj�nsterna p� servern." #: ../dhcp_wizard/dhcp.wiz_.c:13 msgid "This wizard will help you configuring the DHCP services of your server." msgstr "Den h�r guiden hj�lper dig att konfigurera DHCP-tj�nsterna p� servern." #: ../dhcp_wizard/dhcp.wiz_.c:14 ../ftp_wizard/ftp.wiz_.c:10 #: ../web_wizard/web.wiz_.c:16 msgid "Warning\\nYou are in dhcp, server may not work with your configuration." msgstr "" "Varning\\nDu �r i DHCP, servern kanske inte fungerar med din konfiguration." #: ../dhcp_wizard/dhcp.wiz_.c:16 msgid "" "The wizard collected the following parameters needed to configure your DHCP " "service:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera DHCP-" "tj�nsten:" #: ../dhcp_wizard/dhcp.wiz_.c:17 msgid "Lowest IP Address:" msgstr "L�gsta IP-adress:" #: ../dhcp_wizard/dhcp.wiz_.c:18 msgid "DHCP Configuration Wizard" msgstr "Konfigurationsguide f�r DHCP" #: ../dhcp_wizard/dhcp.wiz_.c:19 msgid "The IP range specified is not correct" msgstr "IP-omf�nget som specificerats �r inte korrekt" #: ../dhcp_wizard/dhcp.wiz_.c:20 msgid "DHCP Wizard" msgstr "Guide f�r DHCP" #: ../dhcp_wizard/dhcp.wiz_.c:21 msgid "Configuring the DHCP Server" msgstr "Konfigurerar DHCP-servern" #: ../dns_wizard/dns.wiz_.c:3 msgid "DNS Wizard" msgstr "Guide f�r DNS" #: ../dns_wizard/dns.wiz_.c:8 msgid "" "The wizard collected the following parameters needed to configure your DNS " "service:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera DNS-" "tj�nsten:" #: ../dns_wizard/dns.wiz_.c:9 msgid "Configuring the DNS Server" msgstr "Konfigurerar DNS-servern" #: ../dns_wizard/dns.wiz_.c:10 msgid "Secondary DNS Address:" msgstr "Sekund�r DNS-adress:" #: ../dns_wizard/dns.wiz_.c:11 msgid "DNS Server Addresses" msgstr "DNS-serveradresser" #: ../dns_wizard/dns.wiz_.c:13 msgid "" "This wizard will help you configuring the DNS services of your server. This " "configuration will provide a local DNS service for local computers names, " "with non-local requests forwarded to an outside DNS." msgstr "" "Den h�r guiden hj�lper dig att konfigurera DNS-tj�nsterna p� servern. Den " "h�r konfigurationen tillhandah�ller en lokal DNS-tj�nst f�r lokala " "datornamn. Icke-lokala f�rfr�gningar vidarebefordras till en DNS p� utsidan." #: ../dns_wizard/dns.wiz_.c:14 msgid "" "DNS will allow your network to communicate with the Internet using standard " "internet host names. In order to configure DNS, you must provide the IP " "address of primary and secondary DNS server; usually this address are given " "by your Internet provider." msgstr "" "DNS l�ter ditt n�tverk kommunicera med Internet med hj�lp av datornamn som " "�r standard p� Internet. F�r att konfigurera DNS m�ste du tillhandah�lla IP-" "adressen f�r den prim�ra och sekund�ra DNS-servern. Dessa adresser f�r du " "vanligtvis fr�n din Internetleverant�r." #: ../dns_wizard/dns.wiz_.c:15 msgid "You have entered an empty address for the DNS server." msgstr "Du har angett en tom adress f�r DNS-servern." #: ../dns_wizard/dns.wiz_.c:16 msgid "Press next to leave these values empty, or back to enter a value." msgstr "" "Klicka p� N�sta f�r att l�mna dessa v�rden tomma eller Tillbaka f�r att ange " "ett v�rde." #: ../dns_wizard/dns.wiz_.c:17 msgid "DNS Configuration Wizard" msgstr "Konfigurationsguide f�r DNS" #: ../dns_wizard/dns.wiz_.c:18 msgid "Primary DNS Address:" msgstr "Prim�r DNS-adress:" #: ../dns_wizard/dns.wiz_.c:20 msgid "" "Your setting could be accepted, but you will not be able to identify machine " "names outside your local network." msgstr "" "Inst�llningarna kan accepteras men du kommer inte att kunna identifiera " "datornamn utanf�r ditt lokala n�tverk." #: ../dns_wizard/dns.wiz_.c:22 msgid "" "DNS (Domain Name Server) is the service that puts in correspondence a " "machine with an internet host name." msgstr "" #: ../dns_wizard/dns.wiz_.c:23 msgid "The wizard successfully configured the DNS services of your server." msgstr "Guiden lyckades med att konfigurera DNS-tj�nsterna p� servern." #: ../drakwizard.pl_.c:63 msgid "Drakwizard wizard selection" msgstr "Val av guide" #: ../drakwizard.pl_.c:64 msgid "Please select a wizard" msgstr "V�lj en guide" #: ../drakwizard.pl_.c:101 #, c-format msgid "" "%s is not installed\n" "Click \"Next\" to install or \"Cancel\" to quit" msgstr "" "%s �r inte installerad.\n" "Klicka p� \"N�sta\" f�r att installera eller \"Avbryt\" f�r att avsluta" #: ../firewall_wizard/firewall.wiz_.c:1 msgid "Device" msgstr "Enhet" #: ../firewall_wizard/firewall.wiz_.c:2 msgid "Strong - no outside visibility, users limited to web" msgstr "H�g - inget syns fr�n utsidan, anv�ndare begr�nsade till webb" #: ../firewall_wizard/firewall.wiz_.c:3 ../news_wizard/news.wiz_.c:2 #: ../proxy_wizard/proxy.wiz_.c:7 ../samba_wizard/samba.wiz_.c:1 msgid "Something terrible happened" msgstr "N�got hemskt h�nde" #: ../firewall_wizard/firewall.wiz_.c:5 msgid "Firewall Configuration Wizard" msgstr "Konfigurationsguide f�r brandv�gg" #: ../firewall_wizard/firewall.wiz_.c:7 msgid "Internet Network Device:" msgstr "N�tverksenhet f�r Internet:" #: ../firewall_wizard/firewall.wiz_.c:9 ../samba_wizard/samba.wiz_.c:24 #: ../server_wizard/server.wiz_.c:35 msgid "Fix It" msgstr "Fixa det" #: ../firewall_wizard/firewall.wiz_.c:10 msgid "Protection Level:" msgstr "Skyddsniv�:" #: ../firewall_wizard/firewall.wiz_.c:11 msgid "Firewall wizard" msgstr "Guide f�r brandv�gg" #: ../firewall_wizard/firewall.wiz_.c:12 msgid "The wizard successfully configured your server firewall." msgstr "Guiden lyckades med att konfigurera serverbrandv�ggen." #: ../firewall_wizard/firewall.wiz_.c:13 msgid "Medium - web, ftp and ssh shown to outside" msgstr "Medium - webb, FTP och SSH visas f�r utsidan" #: ../firewall_wizard/firewall.wiz_.c:14 msgid "Protection Level" msgstr "Skyddsniv�" #: ../firewall_wizard/firewall.wiz_.c:15 ../news_wizard/news.wiz_.c:14 #: ../proxy_wizard/proxy.wiz_.c:41 ../samba_wizard/samba.wiz_.c:27 #: ../server_wizard/server.wiz_.c:43 msgid "Exit" msgstr "Avsluta" #: ../firewall_wizard/firewall.wiz_.c:16 msgid "The device name is not correct" msgstr "Enhetsnamnet �r inte korrekt" #: ../firewall_wizard/firewall.wiz_.c:17 msgid "" "The firewall needs to know how your server is connected to Internet; choose " "the device you are using for the external connection." msgstr "" "Brandv�ggen beh�ver veta hur servern �r ansluten till Internet. V�lj enheten " "du anv�nder f�r den externa anslutningen." #: ../firewall_wizard/firewall.wiz_.c:18 msgid "" "The firewall protects your internal network from unauthorized accesses from " "the Internet." msgstr "" "Brandv�ggen skyddar ditt interna n�tverk mot otill�tna n�tverksinbrott." #: ../firewall_wizard/firewall.wiz_.c:20 msgid "Configuring the Firewall" msgstr "Konfigurerar brandv�ggen" #: ../firewall_wizard/firewall.wiz_.c:21 msgid "None - No protection" msgstr "Ingen - Inget skydd" #: ../firewall_wizard/firewall.wiz_.c:22 msgid "This wizard will help you configuring your server firewall." msgstr "Den h�r guiden hj�lper dig att konfigurera serverbrandv�ggen." #: ../firewall_wizard/firewall.wiz_.c:23 msgid "Low - Light filtering, standard services available" msgstr "L�g - L�tt filtrering, standardtj�nster tillg�ngliga" #: ../firewall_wizard/firewall.wiz_.c:24 msgid "Firewall Network Device" msgstr "N�tverksenhet f�r brandv�gg" #: ../firewall_wizard/firewall.wiz_.c:25 msgid "" "The wizard collected the following parameters needed to configure your " "firewall:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera " "brandv�ggen:" #: ../firewall_wizard/firewall.wiz_.c:26 msgid "" "The firewall can be configured to offer different levels of protection; " "choose the level that corresponds to your needs. If you don't know, the " "Medium level is usually the most appropriate." msgstr "" "Brandv�ggen kan konfigureras s� att den erbjuder olika niv�er av skydd, v�lj " "den niv� som passar dina behov. Om du inte vet s� �r vanligtvis mediumniv�n " "ett bra val." #: ../ftp_wizard/ftp.wiz_.c:1 msgid "Select the kind of FTP service you want to activate:" msgstr "V�lj vilken form av FTP-tj�nst du vill aktivera:" #: ../ftp_wizard/ftp.wiz_.c:5 msgid "Internet FTP Server:" msgstr "FTP-server f�r Internet:" #: ../ftp_wizard/ftp.wiz_.c:6 msgid "" "Your server can act as an FTP Server toward your internal network (intranet) " "and as an FTP Server for the Internet." msgstr "" "Servern kan upptr�da som en FTP-server mot ditt interna n�tverk (Intran�t) " "och som en FTP-server f�r Internet." #: ../ftp_wizard/ftp.wiz_.c:9 msgid "The wizard successfully configured your Intranet/Internet FTP Server" msgstr "Guiden lyckades med att konfigurera FTP-servern f�r Intran�t/Internet" #: ../ftp_wizard/ftp.wiz_.c:11 msgid "Enable the FTP Server for the Intranet" msgstr "Aktivera FTP-servern f�r Intran�tet" #: ../ftp_wizard/ftp.wiz_.c:12 msgid "FTP wizard" msgstr "Guide f�r FTP" #: ../ftp_wizard/ftp.wiz_.c:13 msgid "" "The wizard collected the following parameters needed to configure your FTP " "Server" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera FTP-" "servern" #: ../ftp_wizard/ftp.wiz_.c:15 msgid "This wizard will help you configuring the FTP Server for your network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera en FTP-server f�r ditt n�tverk." #: ../ftp_wizard/ftp.wiz_.c:16 msgid "Enable the FTP Server for the Internet" msgstr "Aktivera FTP-servern f�r Internet" #: ../ftp_wizard/ftp.wiz_.c:17 msgid "FTP Server Configuration Wizard" msgstr "Konfigurationsguide f�r FTP-server" #: ../ftp_wizard/ftp.wiz_.c:18 msgid "Intranet FTP Server:" msgstr "FTP-server f�r Intran�t:" #: ../ftp_wizard/ftp.wiz_.c:19 msgid "Configuring the FTP Server" msgstr "Konfigurerar FTP-servern" #: ../ftp_wizard/ftp.wiz_.c:20 msgid "Don't check any box if you don't want to activate your FTP Server." msgstr "Markera ingen ruta om du inte vill aktivera FTP-servern." #: ../ftp_wizard/ftp.wiz_.c:21 msgid "FTP Server" msgstr "FTP-server" #: ../news_wizard/news.wiz_.c:1 msgid "News Server Name:" msgstr "Namn p� diskussionsgruppserver:" #: ../news_wizard/news.wiz_.c:3 msgid "Welcome to the News Wizard" msgstr "V�lkommen till guiden f�r diskussionsgrupper" #: ../news_wizard/news.wiz_.c:5 msgid "Polling Period (Hours):" msgstr "Periodisk kontroll (timmar):" #: ../news_wizard/news.wiz_.c:6 msgid "News Server" msgstr "Diskussionsgruppserver" #: ../news_wizard/news.wiz_.c:9 msgid "" "Your server will regularly poll the News Server for obtaning the latest " "Internet News; the polling period set the interval between two consecutive " "polling." msgstr "" #: ../news_wizard/news.wiz_.c:10 msgid "The news server name is not correct" msgstr "Namnet p� diskussionsgruppservern �r felaktigt" #: ../news_wizard/news.wiz_.c:12 msgid "Polling Interval:" msgstr "Intervall f�r periodisk kontroll:" #: ../news_wizard/news.wiz_.c:13 msgid "" "Internet host names must be in the form \\qhost.domain.domaintype\\q; for " "example, if your provider is \\qprovider.com\\q, the internet news server is " "usually \\qnews.provider.com\\q." msgstr "" "Internetdatornamn m�ste vara i formen \\qdator.dom�n.dom�ntyp\\q. Om din " "leverant�r �r \\qleverant�r.se\\q, �r diskussionsgruppsservern vanligtvis " "\\qnews.leverant�r.se\\q." #: ../news_wizard/news.wiz_.c:15 msgid "Polling Period" msgstr "Periodisk kontroll" #: ../news_wizard/news.wiz_.c:16 msgid "" "Depending on the kind of internet connection you have, an appropriate " "polling period can change between 6 and 24 hours." msgstr "" #: ../news_wizard/news.wiz_.c:17 msgid "The polling period is not correct" msgstr "Den periodiska kontrollen �r felaktig" #: ../news_wizard/news.wiz_.c:18 msgid "News Server:" msgstr "Diskussionsgruppserver:" #: ../news_wizard/news.wiz_.c:19 msgid "" "The news server name is the name of the host providing the Internet news to " "your network; the name is usually provided by your provider." msgstr "" "Namnet p� diskussionsgruppservern �r namnet p� datorn som tillhandah�ller " "diskussionsgrupper f�r ditt n�tverk. Namnet tillhandah�lls vanligen av din " "leverant�r." #: ../news_wizard/news.wiz_.c:21 msgid "" "The wizard collected the following parameters needed to configure your " "Internet News Service:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera " "diskussionsgruppstj�nsten:" #: ../news_wizard/news.wiz_.c:22 msgid "" "This wizard will help you configuring the Internet News services for your " "network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera diskussionsgruppstj�nsten f�r " "ditt n�tverk." #: ../news_wizard/news.wiz_.c:23 msgid "Configuring the Internet News" msgstr "Konfigurerar diskussionsgrupper" #: ../news_wizard/news.wiz_.c:24 msgid "" "The wizard successfully configured your Internet News service of your server." msgstr "" "Guiden lyckades med att konfigurera diskussionsgruppstj�nsterna p� servern." #: ../news_wizard/news.wiz_.c:25 msgid "News Wizard" msgstr "Guide f�r diskussionsgrupper" #: ../nfs_wizard/nfs.wiz_.c:1 msgid "This wizard will help you configuring the NFS Server for your network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera en NFS-server f�r ditt n�tverk." #: ../nfs_wizard/nfs.wiz_.c:3 msgid "NFS Server Configuration Wizard" msgstr "Konfigurationsguide f�r NFS-server" #: ../nfs_wizard/nfs.wiz_.c:5 msgid "NFS Server" msgstr "NFS-server" #: ../nfs_wizard/nfs.wiz_.c:6 msgid "The wizard successfully configured your NFS Server" msgstr "Guiden lyckades med att konfigurera NFS-servern." #: ../nfs_wizard/nfs.wiz_.c:7 msgid "Directory:" msgstr "Katalog:" #: ../nfs_wizard/nfs.wiz_.c:8 msgid "NFS Wizard" msgstr "Guide f�r NFS" #: ../postfix_wizard/postfix.wiz_.c:1 msgid "Do It" msgstr "G�r det" #: ../postfix_wizard/postfix.wiz_.c:3 msgid "" "You can select the kind of address that outgoing mail will show in the " "\\qFrom:\\q and \\qReply-to\\q field." msgstr "" "Du kan v�lja vilken typ av adress som utg�ende post ska visa i f�lten " "\\qFr�n:\\q och \\qSvara till\\q." #: ../postfix_wizard/postfix.wiz_.c:5 msgid "Configuring the Internet Mail" msgstr "Konfigurerar e-post f�r Internet" #: ../postfix_wizard/postfix.wiz_.c:6 msgid "Postfix wizard" msgstr "Guide f�r Postfix" #: ../postfix_wizard/postfix.wiz_.c:7 msgid "" "Your server will send the outgoing through a mail gateway, that will take " "care of the final delivery." msgstr "" "Din server skickar den utg�ende posten genom en e-post-gateway som tar hand " "om den slutgiltiga leveransen." #: ../postfix_wizard/postfix.wiz_.c:8 msgid "" "This wizard will help you configuring the Internet Mail services for your " "network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera tj�nsterna f�r Internet-e-post " "f�r ditt n�tverket." #: ../postfix_wizard/postfix.wiz_.c:9 msgid "Outgoing Mail Address" msgstr "Utg�ende e-postadress" #: ../postfix_wizard/postfix.wiz_.c:10 msgid "" "This should be chosen consistently with the address you use for incoming " "mail." msgstr "" "Detta b�r v�ljas konsekvent med adressen du anv�nder f�r inkommande e-post." #: ../postfix_wizard/postfix.wiz_.c:11 msgid "There seems to be a problem... go ask to the big black man downstairs" msgstr "Det verkar vara ett problem, fr�ga administrat�ren." #: ../postfix_wizard/postfix.wiz_.c:12 msgid "Masquerade not good!" msgstr "Maskering �r inte bra." #: ../postfix_wizard/postfix.wiz_.c:13 msgid "" "If you choose to configure now, you will automatically continue with the " "POSTFIX configuration" msgstr "" "Om du v�ljer att konfigurera nu kommer du automatiskt att forts�tta med " "konfigurationen av Postfix" #: ../postfix_wizard/postfix.wiz_.c:14 msgid "Form of the Address" msgstr "Adressens form" #: ../postfix_wizard/postfix.wiz_.c:15 msgid "" "Internet host names must be in the form \\qhost.domain.domaintype\\q; for " "example, if your provider is \\qprovider.com\\q, the internet mail server is " "usually \\qsmtp.provider.com\\q." msgstr "" "Internetdatornamn m�ste vara i formen \\qdator.dom�n.dom�ntyp\\q. Om din " "leverant�r �r \\qleverant�r.se\\q, �r e-postservern f�r Internet vanligtvis " "\\qsmtp.leverant�r.se\\q." #: ../postfix_wizard/postfix.wiz_.c:18 msgid "Internet Mail Configuration Wizard" msgstr "Konfigurationsguide f�r Internet-e-post" #: ../postfix_wizard/postfix.wiz_.c:19 msgid "" "The wizard collected the following parameters needed to configure your " "Internet Mail Service:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera e-" "posttj�nsten f�r Internet" #: ../postfix_wizard/postfix.wiz_.c:20 msgid "Mail Address:" msgstr "E-postadress:" #: ../postfix_wizard/postfix.wiz_.c:21 msgid "You entered an empty address for the mail gateway." msgstr "Du angav en tom adress f�r e-post-gateway." #: ../postfix_wizard/postfix.wiz_.c:22 msgid "" "The wizard successfully configured your Internet Mail service of your server." msgstr "" "Guiden lyckades med att konfigurera tj�nsterna f�r Internet-e-post p� " "servern." #: ../postfix_wizard/postfix.wiz_.c:23 msgid "Hmmm" msgstr "Hmmm" #: ../postfix_wizard/postfix.wiz_.c:24 msgid "Internet Mail Gateway" msgstr "Gateway f�r Internet-e-post" #: ../postfix_wizard/postfix.wiz_.c:26 msgid "Mail Server Name:" msgstr "Namn p� e-postserver:" #: ../postfix_wizard/postfix.wiz_.c:28 msgid "" "Your choice can be accepted, but this will not allow you to send mail " "outside your local network. Press next to continue, or back to enter a value." msgstr "" "Valet kan accepteras men det kommer inte l�ta dig skicka e-post utanf�r ditt " "lokala n�tverk. Klicka p� N�sta f�r att forts�tta eller Tillbaka f�r att " "ange ett v�rde." #: ../proxy_wizard/proxy.wiz_.c:1 msgid "/etc/services:" msgstr "/etc/services:" #: ../proxy_wizard/proxy.wiz_.c:2 msgid "" "Memory Cache is the amount of RAM dedicated to cache memory operations (note " "that actual memory usage of the whole squid process is bigger)." msgstr "" "Minnescache �r m�ngden RAM som dedikeras till att cacha minnesoperationer " "(observera att den verkliga minnesanv�ndningen f�r hela Squid-processen �r " "st�rre)." #: ../proxy_wizard/proxy.wiz_.c:3 msgid "Proxy port:" msgstr "Proxy-port:" #: ../proxy_wizard/proxy.wiz_.c:4 msgid "The wizard successfully configured your proxy server." msgstr "Guiden lyckades med att konfigurera proxy-servern." #: ../proxy_wizard/proxy.wiz_.c:5 msgid "You have entered a port that may be useful for this service:" msgstr "Du har angett en port som kan vara anv�ndbar f�r den h�r tj�nsten:" #: ../proxy_wizard/proxy.wiz_.c:6 msgid "" "Choose the level that suits your needs. If you don't know,the Local Network " "level is usually the most appropriate. Beware that the All level may be not " "secure." msgstr "" "V�lj niv�n som passar dina behov. Om du inte vet s� brukar niv�n Lokalt " "n�tverk r�cka bra. Observera att niv�n Alla kanske inte �r s�ker." #: ../proxy_wizard/proxy.wiz_.c:8 msgid "Cache hierarchy" msgstr "Cachehierarki" #: ../proxy_wizard/proxy.wiz_.c:9 msgid "" "Squid is a web caching proxy server, it allows faster web access for your " "local network." msgstr "" "Squid �r en webbcachande proxy-server. Den till�ter snabbare webb�tkomst f�r " "ditt lokala n�tverk." #: ../proxy_wizard/proxy.wiz_.c:10 msgid "Define an upper level proxy" msgstr "Definiera en proxy f�r �vre niv�" #: ../proxy_wizard/proxy.wiz_.c:12 msgid "All - No access restriction" msgstr "Alla - Inga �tkomstbegr�nsningar" #: ../proxy_wizard/proxy.wiz_.c:13 msgid "" "Access will be allowed for hosts on the network. Here is the information " "found about your current local network, you can modify it if needed." msgstr "" "�tkomst kommer att till�tas f�r datorer p� n�tverket. H�r �r informationen " "som hittades om ditt aktuella lokala n�tverk. Du kan �ndra det om det beh�vs." #: ../proxy_wizard/proxy.wiz_.c:14 msgid "Access Control" msgstr "�tkomstkontroll" #: ../proxy_wizard/proxy.wiz_.c:15 msgid "Disk space (MB):" msgstr "Diskutrymme (MB):" #: ../proxy_wizard/proxy.wiz_.c:16 msgid "Upper level proxy hostname:" msgstr "Datornamn f�r �vre niv�-proxy:" #: ../proxy_wizard/proxy.wiz_.c:18 msgid "" "Disk Cache is the amount of disk space that can be used for caching on disk." msgstr "" "Diskcache �r m�ngden diskutrymme som kan anv�ndas f�r cachening p� disk." #: ../proxy_wizard/proxy.wiz_.c:19 msgid "Local Network - access for local network (recommended)" msgstr "Lokalt n�tverk - �tkomst f�r lokalt n�tverk (rekommenderas)" #: ../proxy_wizard/proxy.wiz_.c:20 msgid "Configuring the Proxy" msgstr "Konfigurerar proxy" #: ../proxy_wizard/proxy.wiz_.c:21 msgid "" "Proxy port value sets what port the proxy server will listen on for http " "requests. Default is 3128, other common value can be 8080, the port value " "need to be greater than 1024." msgstr "" "V�rdet f�r proxy-port st�ller in vilken port proxy-servern ska lyssna p� " "efter HTTP-f�rfr�gningar. Standard �r 3128, ett annat vanligt v�rde �r 8080. " "Portv�rdet m�ste vara st�rre �n 1024." #: ../proxy_wizard/proxy.wiz_.c:22 msgid "Squid wizard" msgstr "Guide f�r Squid" #: ../proxy_wizard/proxy.wiz_.c:23 msgid "Port:" msgstr "Port:" #: ../proxy_wizard/proxy.wiz_.c:24 msgid "Filesystem Size Used Avail Use% Mounted on" msgstr "Filsystem Storlek Anv�nt Tillg�ng. Anv�nd% Monterad p�" #: ../proxy_wizard/proxy.wiz_.c:25 ../samba_wizard/samba.wiz_.c:12 #: ../server_wizard/server.wiz_.c:22 msgid "This Wizard need to run as root" msgstr "Den guiden m�ste k�ras som root" #: ../proxy_wizard/proxy.wiz_.c:26 msgid "" "You can safely select \\qNo upper level proxy\\q if you don't need this " "feature." msgstr "" "Du kan s�kert v�lja \\qIngen proxy f�r �vre niv�\\q om du inte beh�ver den " "funktionen." #: ../proxy_wizard/proxy.wiz_.c:27 msgid "Memory cache (MB):" msgstr "Minnescache (MB):" #: ../proxy_wizard/proxy.wiz_.c:28 msgid "Access Control:" msgstr "�tkomstkontroll:" #: ../proxy_wizard/proxy.wiz_.c:29 msgid "" "If you choose to configure now, you will automatically continue with the " "Proxy configuration." msgstr "" "Om du v�ljer att konfigurera nu kommer du automatiskt att forts�tta med " "konfigurationen av proxy." #: ../proxy_wizard/proxy.wiz_.c:30 msgid "Proxy Port" msgstr "Proxy-port" #: ../proxy_wizard/proxy.wiz_.c:32 msgid "Press back to change the value." msgstr "Klicka p� Tillbaka f�r att �ndra v�rdet." #: ../proxy_wizard/proxy.wiz_.c:33 msgid "" "Enter the qualified hostname (like \\qcache.domain.net\\q) and the port of " "the proxy to use." msgstr "" "Ange hela datornamnet (t ex \\qcache.dom�n.se\\q) och porten f�r proxyn som " "ska anv�ndas." #: ../proxy_wizard/proxy.wiz_.c:34 msgid "No upper level proxy (recommended)" msgstr "Ingen proxy f�r �vre niv� (rekommenderas)" #: ../proxy_wizard/proxy.wiz_.c:35 msgid "You must choose a port greater than 1024 and lower than 65535" msgstr "Du m�ste v�lja en port h�gre �n 1024 och l�gre �n 65535" #: ../proxy_wizard/proxy.wiz_.c:38 msgid "Proxy Cache Size" msgstr "Cachestorlek f�r proxy" #: ../proxy_wizard/proxy.wiz_.c:39 msgid "" "Press Next if you want to keep this value, or Back to correct your choice." msgstr "" "Klicka p� N�sta f�r att beh�lla det h�r v�rdet eller Tillbaka f�r att " "korrigera ditt val." #: ../proxy_wizard/proxy.wiz_.c:40 msgid "Localhost - access restricted to this server only" msgstr "" "Lokal dator (Localhost) - �tkomst begr�nsad till endast den h�r servern" #: ../proxy_wizard/proxy.wiz_.c:42 msgid "" "You can use either a numeric format like \\q192.168.1.0/255.255.255.0\\q or " "a text format like \\q.domain.net\\q" msgstr "" "Du kan antingen anv�nda ett nummerformat som \\q192.168.1.0/255.255.255.0\\q " "eller ett textformat som \\q.dom�n.se\\q" #: ../proxy_wizard/proxy.wiz_.c:43 msgid "Proxy Configuration Wizard" msgstr "Konfigurationsguide f�r proxy" #: ../proxy_wizard/proxy.wiz_.c:44 msgid "Authorised network:" msgstr "" #: ../proxy_wizard/proxy.wiz_.c:45 msgid "Grant access on local network" msgstr "Ge �tkomst p� lokalt n�tverk" #: ../proxy_wizard/proxy.wiz_.c:46 msgid "" "As an option, Squid can be configured in proxy cascading. You can add a new " "upper level proxy by specifying its hostname and port." msgstr "" "Som ett alternativ kan Squid konfigureras i proxy-kaskadning. Du kan l�gga " "till en ny �vre niv�-proxy genom att specificera dess datornamn och port." #: ../proxy_wizard/proxy.wiz_.c:49 msgid "" "The wizard collected the following parameters needed to configure your proxy:" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera proxyn:" #: ../proxy_wizard/proxy.wiz_.c:50 msgid "The proxy can be configured to use different access control levels." msgstr "Proxy kan konfigureras till att anv�nda olika �tkomstkontrollniv�er." #: ../proxy_wizard/proxy.wiz_.c:51 msgid "Upper level proxy port:" msgstr "Proxy-port f�r �vre niv�:" #: ../proxy_wizard/proxy.wiz_.c:53 msgid "This wizard will help you configuring your proxy server." msgstr "Den h�r guiden hj�lper dig att konfigurera proxy-servern." #: ../proxy_wizard/proxy.wiz_.c:54 msgid "For information, here is /var/spool/squid space on disk:" msgstr "F�r information: h�r �r /var/spool/squid-utrymmet p� disk:" #: ../samba_wizard/samba.wiz_.c:2 msgid "Workgroup:" msgstr "Arbetsgrupp:" #: ../samba_wizard/samba.wiz_.c:3 msgid "" "If you choose to configure now, you will automatically continue with the " "SAMBA configuration" msgstr "" "Om du v�ljer att konfigurera nu kommer du automatiskt att forts�tta med " "konfigurationen av Samba" #: ../samba_wizard/samba.wiz_.c:4 msgid "The Server Banner is incorrect" msgstr "Serverrubriken �r felaktig" #: ../samba_wizard/samba.wiz_.c:6 msgid "" "This wizard will help you configuring the Samba services of your server." msgstr "Den h�r guiden hj�lper dig att konfigurera Samba-tj�nster p� servern." #: ../samba_wizard/samba.wiz_.c:8 msgid "Enabled Samba Services" msgstr "Aktiverade Samba-tj�nster" #: ../samba_wizard/samba.wiz_.c:9 msgid "" "The wizard collected the following parameters needed to configure Samba." msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera Samba." #: ../samba_wizard/samba.wiz_.c:10 msgid "Enable /home/samba/public sharing area" msgstr "Aktivera utdelningsomr�det /home/samba/public" #: ../samba_wizard/samba.wiz_.c:11 msgid "Banner:" msgstr "Rubrik:" #: ../samba_wizard/samba.wiz_.c:13 msgid "Workgroup" msgstr "Arbetsgrupp" #: ../samba_wizard/samba.wiz_.c:14 msgid "" "The banner is the way this server will be described in the Windows " "workstations." msgstr "" "Rubriken �r s�ttet som den h�r servern kommer att beskrivas f�r Windows-" "arbetsstationer." #: ../samba_wizard/samba.wiz_.c:15 msgid "File Sharing:" msgstr "Filutdelning:" #: ../samba_wizard/samba.wiz_.c:16 msgid "" "You have selected to allow user access their home directories via samba but " "you/they must use smbpasswd to set a password." msgstr "" "Du har valt att till�ta anv�ndare komma �t sina hemkataloger via Samba men " "du/dem m�ste anv�nda smbpasswd f�r att ange ett l�senord." #: ../samba_wizard/samba.wiz_.c:18 msgid "" "Samba allows your server to behave as a file and print server for " "workstations running non-Linux systems." msgstr "" "Samba l�ter din server upptr�da som en fil- och skrivarserver f�r " "arbetsstationer som k�r icke-Linux-system." #: ../samba_wizard/samba.wiz_.c:19 msgid "Configuring Samba" msgstr "Konfigurerar Samba" #: ../samba_wizard/samba.wiz_.c:20 msgid "Server Banner." msgstr "Serverrubrik." #: ../samba_wizard/samba.wiz_.c:23 msgid "The Workgroup is wrong" msgstr "Arbetsgruppen �r fel" #: ../samba_wizard/samba.wiz_.c:26 msgid "" "Samba can provide a common file sharing area to your Windows workstation, " "and can also provide printer sharing for the printers connected to your " "server." msgstr "" "Samba kan tillhandah�lla ett allm�nt filutdelningsomr�de f�r dina Windows-" "arbetsstationer och kan ocks� dela ut skrivarna som �r anslutna till servern." #: ../samba_wizard/samba.wiz_.c:28 msgid "Samba need to know the Windows Workgroup it will serve." msgstr "Samba beh�ver k�nna till vilken Windows-arbetsgrupp den ska tj�na." #: ../samba_wizard/samba.wiz_.c:29 msgid "The wizard successfully configured your Samba server." msgstr "Guiden lyckades med att konfigurera Samba-servern." #: ../samba_wizard/samba.wiz_.c:30 msgid "Server Banner:" msgstr "Serverrubrik:" #: ../samba_wizard/samba.wiz_.c:31 msgid "Print Server:" msgstr "Skrivarserver:" #: ../samba_wizard/samba.wiz_.c:34 msgid "Samba wizard" msgstr "Guide f�r Samba" #: ../samba_wizard/samba.wiz_.c:35 msgid "Samba Configuration Wizard" msgstr "Konfigurationsguide f�r Samba" #: ../samba_wizard/samba.wiz_.c:37 msgid "Enable Server Printer Sharing" msgstr "Aktivera utdelning av serverskrivare" #: ../samba_wizard/samba.wiz_.c:38 msgid "Home:" msgstr "Hem:" #: ../samba_wizard/samba.wiz_.c:39 msgid "Make homes directory availables for theirs owners" msgstr "G�r hemkataloger tillg�ngliga f�r sina �gare" #: ../server_wizard/server.wiz_.c:2 msgid "" "Choose the network device (usually a card) the server should use to connect " "to your network. It's the device for the local network, probably not the " "same device used for internet access." msgstr "" "V�lj n�tverksenheten (vanligtvis ett kort) som servern ska anv�nda f�r att " "ansluta till ditt n�tverk. Det �r enheten f�r det lokala n�tverket och " "antagligen inte samma enhet som anv�nds f�r Internet�tkomst." #: ../server_wizard/server.wiz_.c:3 msgid "The Server IP address is incorrect" msgstr "Serverns IP-adress �r felaktig" #: ../server_wizard/server.wiz_.c:4 msgid "Gateway device:" msgstr "Gateway-enhet:" #: ../server_wizard/server.wiz_.c:5 msgid "Server Wizard" msgstr "Serverguide" #: ../server_wizard/server.wiz_.c:6 msgid "" "Network addresses are a list of four numbers smaller than 256, separated by " "dots; the last number of the list must be zero." msgstr "" "N�tverksadresser �r en lista �ver fyra nummer mindre �n 256, �tskilda med " "punkter. Det sista numret i listan m�ste vara noll." #: ../server_wizard/server.wiz_.c:7 msgid "net device" msgstr "n�tenhet" #: ../server_wizard/server.wiz_.c:9 msgid "" "So, it's very probable that domain name and IP adresses for this local " "network are DIFFERENT from the server \\qexternal\\q connection." msgstr "" "Det �r mycket m�jligt att dom�nnamnet och IP-adressen f�r det h�r lokala " "n�tverket SKILJER sig fr�n serverns \\qexterna\\q anslutning." #: ../server_wizard/server.wiz_.c:10 msgid "" "You should not run any other applications while running this wizard and at " "the end of the wizard you should exit your session and redo the login." msgstr "" "Du b�r inte k�ra n�gra andra program medan du k�r den h�r guiden. N�r du har " "slutf�rt guiden b�r du avsluta din session och logga in igen." #: ../server_wizard/server.wiz_.c:11 msgid "" "Here is your current value for the external gateway (value specified during " "the initial installation). The device (network card or modem) should be " "different from the one used for the internal network." msgstr "" "H�r aktuellt v�rde f�r extern gateway (v�rde som specificerades under den " "initiala installationen). Enheten (n�tverkskort eller modem) b�r skilja sig " "fr�n den som anv�nds f�r det interna n�tverket." #: ../server_wizard/server.wiz_.c:12 msgid "" "As regards these wizards, your computer is seen as a server managing his own " "local network (C class network)." msgstr "" "De h�r guiderna ser din dator som en server som hanterar sitt eget lokala " "n�tverk (C-klassn�tverk)." #: ../server_wizard/server.wiz_.c:14 msgid "Device:" msgstr "Enhet:" #: ../server_wizard/server.wiz_.c:15 msgid "Warning" msgstr "Varning" #: ../server_wizard/server.wiz_.c:16 msgid "This page compute the domainname; it should be invisible" msgstr "Den h�r sidan ber�knar dom�nnamnet; det ska vara osynligt" #: ../server_wizard/server.wiz_.c:17 msgid "Server Address:" msgstr "Serveradress:" #: ../server_wizard/server.wiz_.c:18 msgid "Computed domain Name" msgstr "Ber�knat dom�nnamn" #: ../server_wizard/server.wiz_.c:19 msgid "Host Name" msgstr "V�rddatornamn" #: ../server_wizard/server.wiz_.c:20 msgid "This page compute the default server address; should be invisible." msgstr "Den h�r sidan ber�knar standardserveradressen; ska vara osynlig." #: ../server_wizard/server.wiz_.c:21 msgid "Basic Network Configuration Wizard" msgstr "Guide f�r grundl�ggande n�tverkskonfiguration" #: ../server_wizard/server.wiz_.c:23 msgid "The host name is not correct" msgstr "V�rddatornamnet �r felaktigt" #: ../server_wizard/server.wiz_.c:24 msgid "" "Host names must be in the form \\qhost.domain.domaintype\\q; if your server " "will be an Internet server, the domain name should be the name registered " "with your provider. If you will only have intranet any valid name is OK, " "like \\qcompany.net\\q." msgstr "" "Datornamn m�ste vara i formen \\qdator.dom�n.dom�ntyp\\q. Om din server ska " "vara en Internetserver, ska dom�nnamnet vara det namn som �r registrerat hos " "din leverant�r. Om du endast ska ha ett Intran�t kan du anv�nda vilket namn " "du vill, t ex \\qf�retag.net\\q." #: ../server_wizard/server.wiz_.c:25 msgid "External gateway" msgstr "Extern gateway" #: ../server_wizard/server.wiz_.c:26 msgid "" "The network address is a number identifying your network; the proposed value " "is designed for a configuration not connected to Internet, or connected " "using IP masquerading; unless you know what you are doing, accept the " "default value." msgstr "" "N�tverksadressen �r ett nummer som identifierar ditt n�tverk. Det f�rvalda " "v�rdet �r konstruerat f�r en konfiguration som inte �r ansluten till " "Internet eller ansluten med IP-maskering. Om du inte vet vad du g�r, beh�ll " "standardv�rdet." #: ../server_wizard/server.wiz_.c:27 msgid "" "This wizard will help you configuring the basic networking services of your " "server." msgstr "" "Den h�r guiden hj�lper dig att konfigurera de grundl�ggande " "n�tverkstj�nsterna p� servern." #: ../server_wizard/server.wiz_.c:28 msgid "This wizard will set the basic networking parameter of your server." msgstr "" "Den h�r guiden st�ller in de grundl�ggande n�tverksparametrarna p� servern." #: ../server_wizard/server.wiz_.c:29 msgid "Note about networking" msgstr "Notis om n�tverk" #: ../server_wizard/server.wiz_.c:31 msgid "" "Note: the gateway IP address should be non empty if you want an access to " "outside world." msgstr "" "Observera: Gateway-IP-adressen ska inte vara tom om du vill ha �tkomst till " "omv�rlden." #: ../server_wizard/server.wiz_.c:32 msgid "Wizard Error." msgstr "Fel p� guiden." #: ../server_wizard/server.wiz_.c:34 msgid "" "Devices are presented with the Linux name and, if known, with the card " "description." msgstr "" "Enheter presenteras med Linux-namnet och, om k�nt, kortets beskrivning." #: ../server_wizard/server.wiz_.c:37 msgid "Network Address:" msgstr "N�tverksadress:" #: ../server_wizard/server.wiz_.c:38 msgid "Configuring your network" msgstr "Konfigurerar n�tverket" #: ../server_wizard/server.wiz_.c:39 msgid "Gateway IP:" msgstr "Gateway-IP:" #: ../server_wizard/server.wiz_.c:40 msgid "" "The hostname is the name under which your server will be known from the " "other workstations in your network and maybe on the Internet (depending of " "your upstream configuration)." msgstr "" #: ../server_wizard/server.wiz_.c:41 msgid "Host Name:" msgstr "V�rddatornamn:" #: ../server_wizard/server.wiz_.c:42 msgid "" "The wizard collected the following parameters needed to configure your " "network" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera " "n�tverket" #: ../server_wizard/server.wiz_.c:44 msgid "" "External connection is a network from which the computer is client (Internet " "or upstream network), connected using another network card or a modem." msgstr "" #: ../server_wizard/server.wiz_.c:45 msgid "" "(you can change here these values if you know exactly what you're doing)" msgstr "(h�r kan du �ndra dessa v�rden om du vet vad du g�r)" #: ../server_wizard/server.wiz_.c:46 msgid "" "The server IP address is a number identifing your server in your network; " "the proposed value designed for a private network , with no internet " "visibility, or connected using IP masquerading; unless you know what you are " "doing, accept the default value." msgstr "" "Serverns IP-adress �r ett nummer som identifierar servern i ditt n�tverk. " "Det f�rvalda v�rdet �r konstruerat f�r ett privat n�tverk, som inte �r " "anslutet till Internet eller anslutet med IP-maskering. Om du inte vet vad " "du g�r, beh�ll standardv�rdet." #: ../server_wizard/server.wiz_.c:47 msgid "Server Name:" msgstr "Servernamn:" #: ../server_wizard/server.wiz_.c:48 msgid "The network address is wrong" msgstr "N�tverksadressen �r fel" #: ../server_wizard/server.wiz_.c:50 msgid "Server Address" msgstr "Serveradress" #: ../server_wizard/server.wiz_.c:51 msgid "" "The wizard successfully configured the basic networking services of your " "server." msgstr "" "Guiden lyckades med att konfigurera de grundl�ggande n�tverkstj�nsterna p� " "servern." #: ../server_wizard/server.wiz_.c:52 msgid "Network Device" msgstr "N�tverksenhet" #: ../server_wizard/server.wiz_.c:53 msgid "IP net address:" msgstr "IP-n�tadress:" #: ../server_wizard/server.wiz_.c:54 msgid "Network Address" msgstr "N�tverksadress" #: ../server_wizard/server.wiz_.c:55 msgid "Server IP address:" msgstr "Serverns IP-adress:" #: ../time_wizard/time.wiz_.c:1 msgid "University of Adelaide, South Australia" msgstr "University of Adelaide, s�dra Australien" #: ../time_wizard/time.wiz_.c:2 msgid "Press next to start the time servers test." msgstr "Klicka p� N�sta f�r att starta testet av tidsservrarna." #: ../time_wizard/time.wiz_.c:3 msgid "Time Servers" msgstr "Tidsservrar" #: ../time_wizard/time.wiz_.c:4 msgid "Secondary Time Server:" msgstr "Sekund�r tidsserver:" #: ../time_wizard/time.wiz_.c:5 msgid "Thus your server will be the local time server for your network." msgstr "D�rf�r kommer din server att vara lokal tidsserver f�r ditt n�tverk." #: ../time_wizard/time.wiz_.c:6 msgid "" "You can set the time of your machine in two ways: Locally means that the " "setting will simply set the system clock, without synchronizing with the " "external world." msgstr "" "Du kan st�lla in tiden p� din dator p� tv� s�tt: Lokalt betyder att " "inst�llningen st�ller in systemklockan utan att synkronisera med den externa " "v�rlden." #: ../time_wizard/time.wiz_.c:7 msgid "" "If you use a time server, your machine will ask from that server the correct " "time." msgstr "" "Om du anv�nder en tidsserver kommer din dator att fr�ga den servern efter " "den korrekta tiden." #: ../time_wizard/time.wiz_.c:8 msgid "Your server can now act as a time server for your local network." msgstr "Servern kan nu agera som en tidsserver f�r ditt lokala n�tverk." #: ../time_wizard/time.wiz_.c:9 msgid "Scientific Center in Chernogolovka, Moscow region, Russia" msgstr "" #: ../time_wizard/time.wiz_.c:10 msgid "Baylor College of Medicine, Houston, Tx" msgstr "Baylor College of Medicine, Houston, Texas" #: ../time_wizard/time.wiz_.c:11 msgid "Choose a time zone:" msgstr "V�lj en tidszon:" #: ../time_wizard/time.wiz_.c:12 msgid "press next to begin, or cancel to leave this wizard" msgstr "klicka p� N�sta f�r att b�rja eller Avbryt f�r att avsluta guiden" #: ../time_wizard/time.wiz_.c:13 msgid "LAAS/CNRS, Toulouse, France" msgstr "LAAS/CNRS, Toulouse, Frankrike" #: ../time_wizard/time.wiz_.c:14 msgid "SCI, Universite de Limoges, France" msgstr "SCI, Universite de Limoges, Frankrike" #: ../time_wizard/time.wiz_.c:15 msgid "MIT Information Systems, Cambridge, MA" msgstr "MIT Information Systems, Cambridge, MA" #: ../time_wizard/time.wiz_.c:16 msgid "Select a primary and secondary server from the list." msgstr "V�lj en prim�r och en sekund�r server fr�n listan." #: ../time_wizard/time.wiz_.c:17 msgid "(please, choose servers in your geographical area)" msgstr "(v�lj servrar i ditt geografiska omr�de)" #: ../time_wizard/time.wiz_.c:18 msgid "Loria, Nancy, France" msgstr "Loria, Nancy, Frankrike" #: ../time_wizard/time.wiz_.c:19 msgid "Canadian Meteorological Centre, Dorval, Quebec, Canada" msgstr "Canadian Meteorological Centre, Dorval, Quebec, Kanada" #: ../time_wizard/time.wiz_.c:20 msgid "National Research Council of Canada, Ottawa, Ontario, Canada" msgstr "National Research Council of Canada, Ottawa, Ontario, Kanada" #: ../time_wizard/time.wiz_.c:21 msgid "University of Manchester, Manchester, England" msgstr "Universitetet i Manchester, Manchester, England" #: ../time_wizard/time.wiz_.c:22 #, fuzzy msgid "- no outside network" msgstr "Notis om n�tverk" #: ../time_wizard/time.wiz_.c:23 msgid "" "If the time server is not immediately available (network or other reason), " "you will wait about 30 seconds." msgstr "" "Om tidsservern inte �r omedelbart tillg�nglig (n�tverk eller annan orsak), " "kommer du att f� v�nta ca 30 sekunder." #: ../time_wizard/time.wiz_.c:24 msgid "Testing the time servers availability" msgstr "Testar tidsservrarnas tillg�nglighet" #: ../time_wizard/time.wiz_.c:25 msgid "Internet time setting (external time server)" msgstr "Tidsinst�llning via Internet (extern tidsserver)" #: ../time_wizard/time.wiz_.c:26 msgid "University of Oslo, Norway" msgstr "Universitetet i Oslo, Norge" #: ../time_wizard/time.wiz_.c:27 msgid "University of Regina, Regina, Saskatchewan, Canada" msgstr "Universitetet i Regina, Regina, Saskatchewan, Kanada" #: ../time_wizard/time.wiz_.c:28 msgid "Computer Science Department, University of Wisconsin-Madison" msgstr "" #: ../time_wizard/time.wiz_.c:29 msgid "Trinity College, Dublin, Ireland" msgstr "Trinity College, Dublin, Irland" #: ../time_wizard/time.wiz_.c:30 msgid "The time servers are not responding. The causes could be:" msgstr "Tidsservrarna svarar inte. Orsakerna kan vara:" #: ../time_wizard/time.wiz_.c:31 msgid "Which kind of setting would you like to do?" msgstr "Vilken typ av inst�llning vill du g�ra?" #: ../time_wizard/time.wiz_.c:32 msgid "Type of setting" msgstr "Typ av inst�llning" #: ../time_wizard/time.wiz_.c:33 msgid "Swiss Fed. Inst. of Technology" msgstr "" #: ../time_wizard/time.wiz_.c:34 msgid "CRIUC, Universite de Caen, France" msgstr "CRIUC, Universite de Caen, Frankrike" #: ../time_wizard/time.wiz_.c:35 msgid "CISM, Lyon, France" msgstr "CISM, Lyon, Frankrike" #: ../time_wizard/time.wiz_.c:36 msgid "WARNING" msgstr "VARNING" #: ../time_wizard/time.wiz_.c:37 msgid "Inet, Inc., Seoul, Korea" msgstr "Inet, Inc., Seoul, Korea" #: ../time_wizard/time.wiz_.c:38 msgid "Local time setting" msgstr "Lokal tidsinst�llning" #: ../time_wizard/time.wiz_.c:39 msgid "The Chinese University of Hong Kong" msgstr "" #: ../time_wizard/time.wiz_.c:40 msgid "University of Oklahoma, Norman, Oklahoma, USA" msgstr "University of Oklahoma, Norman, Oklahoma, USA" #: ../time_wizard/time.wiz_.c:41 msgid "- other reasons..." msgstr "- andra orsaker..." #: ../time_wizard/time.wiz_.c:42 msgid "- non existent time servers" msgstr "- icke existerande tidsservrar" #: ../time_wizard/time.wiz_.c:43 msgid "Time zone:" msgstr "Tidszon:" #: ../time_wizard/time.wiz_.c:44 msgid "Dept. Computer Science, Strathclyde University, Glasgow, Scotland" msgstr "Dept. Computer Science, Strathclyde University, Glasgow, Skottland" #: ../time_wizard/time.wiz_.c:45 msgid "" "You can try again to contact time servers, or save configuration without " "actually setting time." msgstr "" "Du kan f�rs�ka att kontakta tidsservrarna igen eller spara konfigurationen " "utan att st�lla in tiden." #: ../time_wizard/time.wiz_.c:46 msgid "" "This wizard will help you to set the time of your server, either locally or " "synchronized with an external time server." msgstr "" "Den h�r guiden hj�lper dig att st�lla in tiden p� din server, antingen " "lokalt eller synkroniserat med en extern tidsserver." #: ../time_wizard/time.wiz_.c:47 msgid "Penn State University, University Park, PA" msgstr "" #: ../time_wizard/time.wiz_.c:48 msgid "Primary Time Server:" msgstr "Prim�r tidsserver:" #: ../time_wizard/time.wiz_.c:49 msgid "Try again" msgstr "F�rs�k igen" #: ../time_wizard/time.wiz_.c:50 msgid "Washington State University Tri-Cities, Richland, Wa" msgstr "" #: ../time_wizard/time.wiz_.c:51 msgid "Time server configuration saved" msgstr "Konfigurationsguide f�r tidsserver" #: ../time_wizard/time.wiz_.c:52 msgid "CRI, Campus d'Orsay, Universite Paris Sud, France" msgstr "CRI, Campus d'Orsay, Universite Paris Sud, Frankrike" #: ../time_wizard/time.wiz_.c:54 msgid "Save config without test" msgstr "Spara konfiguration utan test" #: ../time_wizard/time.wiz_.c:55 msgid "Singapore" msgstr "Singapore" #: ../time_wizard/time.wiz_.c:56 msgid "Fukuoka university, Fukuoka, Japan" msgstr "Fukuoka universitetet, Fukuoka, Japan" #: ../time_wizard/time.wiz_.c:57 msgid "UNLV College of Engineering, Las Vegas, NV" msgstr "" #: ../time_wizard/time.wiz_.c:58 msgid "Altea (Alicante/SPAIN)" msgstr "Altea (Alicante/Spanien)" #: ../time_wizard/time.wiz_.c:59 msgid "Time wizard" msgstr "Tidsguide" #: ../web_wizard/web.wiz_.c:1 msgid "" "Your server can act as a Web Server toward your internal network (intranet) " "and as a Web Server for the Internet." msgstr "" "Servern kan upptr�da som en webbserver mot ditt interna n�tverk (intran�t) " "och som en webbserver f�r Internet." #: ../web_wizard/web.wiz_.c:2 msgid "Intranet Web Server:" msgstr "Webbserver f�r Intran�t:" #: ../web_wizard/web.wiz_.c:3 msgid "Select the kind of Web service you want to activate:" msgstr "V�lj vilken form av webbtj�nst du vill aktivera:" #: ../web_wizard/web.wiz_.c:5 msgid "Don't check any box if you don't want to activate your Web Server." msgstr "Markera ingen ruta om du inte vill aktivera webbservern." #: ../web_wizard/web.wiz_.c:6 msgid "The wizard successfully configured your Intranet/Internet Web Server" msgstr "Guiden lyckades med att konfigurera Intran�t/Internet-webbservern" #: ../web_wizard/web.wiz_.c:9 msgid "" "The wizard collected the following parameters needed to configure your Web " "Server" msgstr "" "Guiden samlade in f�ljande parametrar som beh�vs f�r att konfigurera " "webbservern" #: ../web_wizard/web.wiz_.c:10 msgid "Web wizard" msgstr "Webbguide" #: ../web_wizard/web.wiz_.c:12 msgid "Configuring the Web Server" msgstr "Konfigurerar webbservern" #: ../web_wizard/web.wiz_.c:13 msgid "Web Server Configuration Wizard" msgstr "Konfigurationsguide f�r webbserver" #: ../web_wizard/web.wiz_.c:15 msgid "Web Server" msgstr "Webbserver" #: ../web_wizard/web.wiz_.c:17 msgid "Enable the Web Server for the Intranet and for the Internet" msgstr "Aktivera webbservern f�r Intran�t och Internet" #: ../web_wizard/web.wiz_.c:18 msgid "Internet Web Server:" msgstr "Webbserver f�r Internet:" #: ../web_wizard/web.wiz_.c:19 msgid "This wizard will help you configuring the Web Server for your network." msgstr "" "Den h�r guiden hj�lper dig att konfigurera webbservern f�r ditt n�tverk." #: ../web_wizard/web.wiz_.c:21 msgid "Enable the Web Server for the Intranet" msgstr "Aktivera webbservern f�r Intran�tet" msgid "Cancel" msgstr "Avbryt" msgid "Next ->" msgstr "N�sta ->" msgid "<- Previous" msgstr "<- F�reg�ende" msgid "enabled" msgstr "aktiverad" msgid "disabled" msgstr "inaktiverad" class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$l</span> <span class="hl opt">=</span> <span class="hl kwb">$_</span><span class="hl opt">;</span> <span class="hl kwc">ref</span> <span class="hl kwb">$l</span> <span class="hl kwc">or</span> <span class="hl kwb">$l</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">append</span><span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">);</span> <span class="hl kwb">$l</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$w</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkappenditems <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwb">$_</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">()</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">append_items</span><span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl kwb">$w</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkbuttonset <span class="hl opt">{</span> gtkdestroy<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]-></span><span class="hl kwd">child</span><span class="hl opt">);</span> gtkadd<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">],</span> gtkshow<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">1</span><span class="hl opt">]))</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_pixbutton <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$label, $pix, $reverse_order</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> gtkadd<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>Button<span class="hl opt">(),</span> gtkpack_<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">3</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl str">""</span><span class="hl opt">,</span> <span class="hl kwb">$reverse_order</span> ? <span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$label, $pix</span> ? <span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$pix</span><span class="hl opt">) : ()) : (</span><span class="hl kwb">$pix</span> ? <span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$pix</span><span class="hl opt">) : (),</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$label</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl str">""</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkentry <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$text</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$e</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Entry<span class="hl opt">;</span> <span class="hl kwb">$e</span><span class="hl opt">-></span><span class="hl kwd">set_text</span><span class="hl opt">(</span><span class="hl kwb">$text</span><span class="hl opt">);</span> <span class="hl kwb">$e</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtksetstyle <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $s</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_style</span><span class="hl opt">(</span><span class="hl kwb">$s</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkcolor <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$r, $g, $b</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$color</span> <span class="hl opt">=</span> <span class="hl kwc">bless</span> <span class="hl opt">{</span> red <span class="hl opt">=></span> <span class="hl kwb">$r,</span> green <span class="hl opt">=></span> <span class="hl kwb">$g,</span> blue <span class="hl opt">=></span> <span class="hl kwb">$b</span> <span class="hl opt">},</span> <span class="hl str">'Gtk::Gdk::Color'</span><span class="hl opt">;</span> gtkroot<span class="hl opt">()-></span><span class="hl kwd">get_colormap</span><span class="hl opt">-></span><span class="hl kwd">color_alloc</span><span class="hl opt">(</span><span class="hl kwb">$color</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkradio <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$def</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$radio</span><span class="hl opt">;</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$radio</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>RadioButton<span class="hl opt">(</span><span class="hl kwb">$_, $radio</span> ? <span class="hl kwb">$radio</span> <span class="hl opt">: ());</span> <span class="hl kwb">$radio</span><span class="hl opt">-></span><span class="hl kwd">set_active</span><span class="hl opt">(</span><span class="hl kwb">$_</span> <span class="hl kwc">eq</span> <span class="hl kwb">$def</span><span class="hl opt">);</span> <span class="hl kwb">$radio</span> <span class="hl opt">}</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkroot <span class="hl opt">{</span> Gtk-<span class="hl opt">></span><span class="hl kwd">init</span><span class="hl opt">;</span> Gtk-<span class="hl opt">></span><span class="hl kwd">set_locale</span><span class="hl opt">;</span> Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Window-<span class="hl opt">></span><span class="hl kwd">new_foreign</span><span class="hl opt">(</span>Gtk<span class="hl opt">::</span>Gdk-<span class="hl opt">></span><span class="hl kwd">ROOT_WINDOW</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkset_background <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$r, $g, $b</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$root</span> <span class="hl opt">=</span> gtkroot<span class="hl opt">();</span> <span class="hl kwc">my</span> <span class="hl kwb">$gc</span> <span class="hl opt">=</span> Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>GC-<span class="hl opt">></span><span class="hl kwd">new</span><span class="hl opt">(</span><span class="hl kwb">$root</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$color</span> <span class="hl opt">=</span> gtkcolor<span class="hl opt">(</span><span class="hl kwb">$r, $g, $b</span><span class="hl opt">);</span> <span class="hl kwb">$gc</span><span class="hl opt">-></span><span class="hl kwd">set_foreground</span><span class="hl opt">(</span><span class="hl kwb">$color</span><span class="hl opt">);</span> <span class="hl kwb">$root</span><span class="hl opt">-></span><span class="hl kwd">set_background</span><span class="hl opt">(</span><span class="hl kwb">$color</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$h, $w</span><span class="hl opt">) =</span> <span class="hl kwb">$root</span><span class="hl opt">-></span><span class="hl kwd">get_size</span><span class="hl opt">;</span> <span class="hl kwb">$root</span><span class="hl opt">-></span><span class="hl kwd">draw_rectangle</span><span class="hl opt">(</span><span class="hl kwb">$gc,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$w, $h</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtktext_insert <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $t</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">freeze</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">backward_delete</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">get_length</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$t</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'ARRAY'</span><span class="hl opt">) {</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">insert</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">3</span><span class="hl opt">])</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@$t</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">insert</span><span class="hl opt">(</span><span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwb">$t</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl slc">#- DEPRECATED? needs \n otherwise in case of one line text the beginning is not shown (even with the vadj->set_value)</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_word_wrap</span><span class="hl opt">(</span><span class="hl num">1</span><span class="hl opt">);</span> <span class="hl slc">#- $w->vadj->set_value(0);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">thaw</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkset_text <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $s</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_text</span><span class="hl opt">(</span><span class="hl kwb">$s</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkcombo_setpopdown_strings <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_popdown_strings</span><span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkappend_text <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $s</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">append_text</span><span class="hl opt">(</span><span class="hl kwb">$s</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkprepend_text <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $s</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">prepend_text</span><span class="hl opt">(</span><span class="hl kwb">$s</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkset_mousecursor <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$type, $w</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl opt">(</span><span class="hl kwb">$w</span> <span class="hl opt">||</span> gtkroot<span class="hl opt">())-></span><span class="hl kwd">set_cursor</span><span class="hl opt">(</span>Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Cursor-<span class="hl opt">></span><span class="hl kwd">new</span><span class="hl opt">(</span><span class="hl kwb">$type</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtksignal_connect <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc">#-#######################</span> <span class="hl slc"># create widgets wrappers</span> <span class="hl slc">#-#######################</span> <span class="hl kwa">sub</span> create_adjustment <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$val, $min, $max</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> new Gtk<span class="hl opt">::</span>Adjustment<span class="hl opt">(</span><span class="hl kwb">$val, $min, $max</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">, (</span><span class="hl kwb">$max</span> <span class="hl opt">-</span> <span class="hl kwb">$min</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">) /</span> <span class="hl num">10</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_box_with_title <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$o</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$nbline</span> <span class="hl opt">=</span> sum<span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> round<span class="hl opt">(</span><span class="hl kwc">length</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">)</span> <span class="hl kwd">/ 60 + 1/</span><span class="hl num">2</span><span class="hl opt">) }</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">split</span> <span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span> <span class="hl opt">}</span> <span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$box</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>VBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwa">return</span> <span class="hl kwb">$box</span> <span class="hl kwa">if</span> <span class="hl kwb">$nbline</span> <span class="hl opt">==</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">} =</span> n_line_size<span class="hl opt">(</span><span class="hl kwb">$nbline,</span> <span class="hl str">'text'</span><span class="hl opt">,</span> <span class="hl kwb">$box</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">@_</span> <span class="hl opt"><=</span> <span class="hl num">2</span> <span class="hl opt">&&</span> <span class="hl kwb">$nbline</span> <span class="hl opt">></span> <span class="hl num">4</span><span class="hl opt">) {</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>icon<span class="hl opt">} && !$::</span>isWizard <span class="hl kwc">and</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> gtkpack__<span class="hl opt">(</span><span class="hl kwb">$box,</span> gtkset_border_width<span class="hl opt">(</span>gtkpack_<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> gtkpng<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">->{</span>icon<span class="hl opt">})),</span><span class="hl num">5</span><span class="hl opt">)) };</span> <span class="hl kwc">my</span> <span class="hl kwb">$wanted</span> <span class="hl opt">=</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">};</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">} =</span> min<span class="hl opt">(</span><span class="hl num">200</span><span class="hl opt">,</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">});</span> <span class="hl kwc">my</span> <span class="hl kwb">$has_scroll</span> <span class="hl opt">=</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">} <</span> <span class="hl kwb">$wanted</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$wtext</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Text<span class="hl opt">;</span> <span class="hl kwb">$wtext</span><span class="hl opt">-></span><span class="hl kwd">can_focus</span><span class="hl opt">(</span><span class="hl kwb">$has_scroll</span><span class="hl opt">);</span> <span class="hl kwc">chomp</span><span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">$text</span> <span class="hl opt">=</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">"</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl opt">,</span> <span class="hl kwb">@_</span><span class="hl opt">));</span> <span class="hl kwc">my</span> <span class="hl kwb">$scroll</span> <span class="hl opt">=</span> createScrolledWindow<span class="hl opt">(</span>gtktext_insert<span class="hl opt">(</span><span class="hl kwb">$wtext, $text</span><span class="hl opt">));</span> <span class="hl kwb">$scroll</span><span class="hl opt">-></span><span class="hl kwd">set_usize</span><span class="hl opt">(</span><span class="hl num">400</span><span class="hl opt">,</span> <span class="hl kwb">$o</span><span class="hl opt">->{</span>box_size<span class="hl opt">});</span> gtkpack__<span class="hl opt">(</span><span class="hl kwb">$box, $scroll</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$a</span> <span class="hl opt">= !$::</span>no_separator<span class="hl opt">;</span> <span class="hl kwc">undef</span> <span class="hl opt">$::</span>no_separator<span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">->{</span>icon<span class="hl opt">} && !$::</span>isWizard<span class="hl opt">) {</span> gtkpack__<span class="hl opt">(</span><span class="hl kwb">$box,</span> gtkpack_<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">0</span><span class="hl opt">,</span> gtkset_usize<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>VBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">15</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> gtkpng<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">->{</span>icon<span class="hl opt">}) },</span> <span class="hl num">0</span><span class="hl opt">,</span> gtkset_usize<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>VBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">15</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> gtkpack_<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">->{</span>box_title<span class="hl opt">} =</span> new Gtk<span class="hl opt">::</span>VBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> <span class="hl kwc">ref</span> <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">);</span> <span class="hl opt">$::</span>isWizard <span class="hl kwc">and</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_justify</span><span class="hl opt">(</span><span class="hl str">"left"</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_name</span><span class="hl opt">(</span><span class="hl str">"Title"</span><span class="hl opt">);</span> <span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$w</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">ref</span> <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> warp_text<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> <span class="hl kwb">@_</span><span class="hl opt">),</span> <span class="hl num">1</span><span class="hl opt">,</span> new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">),</span> <span class="hl opt">)</span> <span class="hl opt">),</span> if_<span class="hl opt">(</span><span class="hl kwb">$a,</span> new Gtk<span class="hl opt">::</span>HSeparator<span class="hl opt">)</span> <span class="hl opt">)</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> gtkpack__<span class="hl opt">(</span><span class="hl kwb">$box,</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> <span class="hl kwc">ref</span> <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">);</span> <span class="hl opt">$::</span>isWizard <span class="hl kwc">and</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_justify</span><span class="hl opt">(</span><span class="hl str">"left"</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_name</span><span class="hl opt">(</span><span class="hl str">"Title"</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">ref</span> <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> warp_text<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> <span class="hl kwb">@_</span><span class="hl opt">),</span> if_<span class="hl opt">(</span><span class="hl kwb">$a,</span> new Gtk<span class="hl opt">::</span>HSeparator<span class="hl opt">)</span> <span class="hl opt">)</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl slc"># drakfloppy / logdrake</span> <span class="hl kwa">sub</span> create_dialog <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$label, $c</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$ret</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$dialog</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Dialog<span class="hl opt">;</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span> <span class="hl opt">(</span>delete_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> Gtk-<span class="hl opt">></span><span class="hl kwd">main_quit</span><span class="hl opt">() });</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">set_title</span><span class="hl opt">(</span>_<span class="hl opt">(</span><span class="hl str">"logdrake"</span><span class="hl opt">));</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">border_width</span><span class="hl opt">(</span><span class="hl num">10</span><span class="hl opt">);</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">vbox</span><span class="hl opt">-></span><span class="hl kwd">pack_start</span><span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$label</span><span class="hl opt">),</span><span class="hl num">1</span><span class="hl opt">,</span><span class="hl num">1</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$button</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Button _<span class="hl opt">(</span><span class="hl str">"OK"</span><span class="hl opt">);</span> <span class="hl kwb">$button</span><span class="hl opt">-></span><span class="hl kwd">can_default</span><span class="hl opt">(</span><span class="hl num">1</span><span class="hl opt">);</span> <span class="hl kwb">$button</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>clicked <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$ret</span> <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">destroy</span><span class="hl opt">();</span> Gtk-<span class="hl opt">></span><span class="hl kwd">main_quit</span><span class="hl opt">() });</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">action_area</span><span class="hl opt">-></span><span class="hl kwd">pack_start</span><span class="hl opt">(</span><span class="hl kwb">$button,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwb">$button</span><span class="hl opt">-></span><span class="hl kwd">grab_default</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$button2</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Button _<span class="hl opt">(</span><span class="hl str">"Cancel"</span><span class="hl opt">);</span> <span class="hl kwb">$button2</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>clicked <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$ret</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">destroy</span><span class="hl opt">();</span> Gtk-<span class="hl opt">></span><span class="hl kwd">main_quit</span><span class="hl opt">() });</span> <span class="hl kwb">$button2</span><span class="hl opt">-></span><span class="hl kwd">can_default</span><span class="hl opt">(</span><span class="hl num">1</span><span class="hl opt">);</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">action_area</span><span class="hl opt">-></span><span class="hl kwd">pack_start</span><span class="hl opt">(</span><span class="hl kwb">$button2,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwb">$dialog</span><span class="hl opt">-></span><span class="hl kwd">show_all</span><span class="hl opt">;</span> Gtk-<span class="hl opt">></span><span class="hl kwd">main</span><span class="hl opt">();</span> <span class="hl kwb">$ret</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc"># drakfloppy / logdrake</span> <span class="hl kwa">sub</span> destroy_window <span class="hl opt">{</span> <span class="hl kwc">my</span><span class="hl opt">(</span><span class="hl kwb">$widget, $windowref, $w2</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$$windowref</span> <span class="hl opt">=</span> <span class="hl kwc">undef</span><span class="hl opt">;</span> <span class="hl kwb">$w2</span> <span class="hl opt">=</span> <span class="hl kwc">undef</span> <span class="hl kwa">if</span> <span class="hl kwc">defined</span> <span class="hl kwb">$w2</span><span class="hl opt">;</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_hbox <span class="hl opt">{</span> gtkset_layout<span class="hl opt">(</span>gtkset_border_width<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>HButtonBox<span class="hl opt">,</span> <span class="hl num">3</span><span class="hl opt">),</span> <span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">] ||</span> <span class="hl str">'spread'</span><span class="hl opt">) }</span> <span class="hl kwa">sub</span> create_factory_menu_ <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$type, $name, $window, @menu_items</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$widget</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>ItemFactory<span class="hl opt">(</span><span class="hl kwb">$type, $name,</span> <span class="hl kwc">my</span> <span class="hl kwb">$accel_group</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>AccelGroup<span class="hl opt">);</span> <span class="hl kwb">$widget</span><span class="hl opt">-></span><span class="hl kwd">create_items</span><span class="hl opt">(</span><span class="hl kwb">@menu_items</span><span class="hl opt">);</span> <span class="hl kwb">$window</span><span class="hl opt">-></span><span class="hl kwd">add_accel_group</span><span class="hl opt">(</span><span class="hl kwb">$accel_group</span><span class="hl opt">);</span> <span class="hl slc">#$accel_group->attach($main_win);</span> <span class="hl kwb">$widget</span><span class="hl opt">-></span><span class="hl kwd">get_widget</span><span class="hl opt">(</span><span class="hl kwb">$name</span><span class="hl opt">);</span> <span class="hl slc"># return menu bar</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_factory_menu <span class="hl opt">{</span> create_factory_menu_<span class="hl opt">(</span><span class="hl str">'Gtk::MenuBar'</span><span class="hl opt">,</span> <span class="hl str">'<main>'</span><span class="hl opt">,</span> <span class="hl kwb">@_</span><span class="hl opt">) }</span> <span class="hl kwa">sub</span> create_menu <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$title</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>MenuItem<span class="hl opt">(</span><span class="hl kwb">$title</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_submenu</span><span class="hl opt">(</span>gtkshow<span class="hl opt">(</span>gtkappend<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>Menu<span class="hl opt">,</span> <span class="hl kwb">@_</span><span class="hl opt">)));</span> <span class="hl kwb">$w</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_notebook <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$n</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Notebook<span class="hl opt">;</span> add2notebook<span class="hl opt">(</span><span class="hl kwb">$n,</span> <span class="hl kwc">splice</span><span class="hl opt">(</span><span class="hl kwb">@_,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">2</span><span class="hl opt">))</span> <span class="hl kwa">while</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$n</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_packtable <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$options, @l</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Table<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$options</span><span class="hl opt">->{</span>homogeneous<span class="hl opt">} ||</span> <span class="hl num">0</span><span class="hl opt">);</span> map_index <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$i, $l</span><span class="hl opt">) = (</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">);</span> map_index <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$j</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) {</span> <span class="hl kwc">ref</span> <span class="hl kwb">$_</span> <span class="hl kwc">or</span> <span class="hl kwb">$_</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">);</span> <span class="hl kwb">$j</span> <span class="hl opt">!=</span> <span class="hl kwb">$#$l</span> ? <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">attach</span><span class="hl opt">(</span><span class="hl kwb">$_, $j, $j</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl kwb">$i, $i</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl str">'fill'</span><span class="hl opt">,</span> <span class="hl str">'fill'</span><span class="hl opt">,</span> <span class="hl num">5</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">) :</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">attach</span><span class="hl opt">(</span><span class="hl kwb">$_, $j, $j</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl kwb">$i, $i</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">|</span><span class="hl num">4</span><span class="hl opt">,</span> <span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'Gtk::ScrolledWindow'</span> ? <span class="hl num">1</span><span class="hl opt">|</span><span class="hl num">4</span> <span class="hl opt">:</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwb">$_</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwb">@$l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_col_spacings</span><span class="hl opt">(</span><span class="hl kwb">$options</span><span class="hl opt">->{</span>col_spacings<span class="hl opt">} ||</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_row_spacings</span><span class="hl opt">(</span><span class="hl kwb">$options</span><span class="hl opt">->{</span>row_spacings<span class="hl opt">} ||</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwb">$w</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> createScrolledWindow <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$W, $policy</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>ScrolledWindow<span class="hl opt">(</span><span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">);</span> <span class="hl kwb">$policy</span> <span class="hl opt">||= [</span> <span class="hl str">'automatic'</span><span class="hl opt">,</span> <span class="hl str">'automatic'</span><span class="hl opt">];</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">set_policy</span><span class="hl opt">(@{</span><span class="hl kwb">$policy</span><span class="hl opt">});</span> member<span class="hl opt">(</span><span class="hl kwc">ref</span> <span class="hl kwb">$W,</span> <span class="hl str">qw(Gtk::CList Gtk::CTree Gtk::Text)</span><span class="hl opt">)</span> ? <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">add</span><span class="hl opt">(</span><span class="hl kwb">$W</span><span class="hl opt">) :</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">add_with_viewport</span><span class="hl opt">(</span><span class="hl kwb">$W</span><span class="hl opt">);</span> <span class="hl kwb">$W</span><span class="hl opt">-></span><span class="hl kwd">can</span><span class="hl opt">(</span><span class="hl str">"set_focus_vadjustment"</span><span class="hl opt">)</span> <span class="hl kwc">and</span> <span class="hl kwb">$W</span><span class="hl opt">-></span><span class="hl kwd">set_focus_vadjustment</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">get_vadjustment</span><span class="hl opt">);</span> <span class="hl kwb">$W</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl kwb">$w</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_treeitem <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$name</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$next_child, $left, $right, $up, $down</span><span class="hl opt">);</span> <span class="hl kwb">$next_child</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$c, $dir</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@childs</span> <span class="hl opt">=</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">parent</span><span class="hl opt">-></span><span class="hl kwd">children</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$i</span><span class="hl opt">;</span> <span class="hl kwa">for</span> <span class="hl opt">(</span><span class="hl kwb">$i</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$i</span> <span class="hl opt"><</span> <span class="hl kwb">@childs</span><span class="hl opt">;</span> <span class="hl kwb">$i++</span><span class="hl opt">) {</span> <span class="hl kwa">last if</span> <span class="hl kwb">$childs</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">] ==</span> <span class="hl kwb">$c</span> <span class="hl opt">||</span> <span class="hl kwb">$childs</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">]-></span><span class="hl kwd">subtree</span> <span class="hl opt">==</span> <span class="hl kwb">$c</span> <span class="hl opt">}</span> <span class="hl kwb">$i</span> <span class="hl opt">+=</span> <span class="hl kwb">$dir</span><span class="hl opt">;</span> <span class="hl num">0</span> <span class="hl opt"><=</span> <span class="hl kwb">$i</span> <span class="hl opt">&&</span> <span class="hl kwb">$i</span> <span class="hl opt"><</span> <span class="hl kwb">@childs</span> ? <span class="hl kwb">$childs</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">] :</span> <span class="hl kwc">undef</span><span class="hl opt">;</span> <span class="hl opt">};</span> <span class="hl kwb">$left</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{ &</span><span class="hl kwb">$next_child</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]-></span><span class="hl kwd">parent</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">) };</span> <span class="hl kwb">$right</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">subtree</span> <span class="hl kwc">and</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">expand</span><span class="hl opt">,</span> <span class="hl kwa">return</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">subtree</span><span class="hl opt">-></span><span class="hl kwd">children</span><span class="hl opt">)[</span><span class="hl num">0</span><span class="hl opt">];</span> <span class="hl kwb">$c</span> <span class="hl opt">};</span> <span class="hl kwb">$down</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">return</span> <span class="hl opt">&</span><span class="hl kwb">$right</span><span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwc">ref</span> <span class="hl kwb">$c</span> <span class="hl kwc">eq</span> <span class="hl str">"Gtk::TreeItem"</span> <span class="hl opt">&&</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">subtree</span> <span class="hl opt">&&</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">expanded</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$next_child</span><span class="hl opt">(</span><span class="hl kwb">$c,</span> <span class="hl num">1</span><span class="hl opt">)) {</span> <span class="hl kwb">$n</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwa">return if</span> <span class="hl kwc">ref</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">parent</span> <span class="hl kwc">ne</span> <span class="hl str">'Gtk::Tree'</span><span class="hl opt">;</span> <span class="hl opt">&</span><span class="hl kwb">$down</span><span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">parent</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">};</span> <span class="hl kwb">$up</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$next_child</span><span class="hl opt">(</span><span class="hl kwb">$c,</span> <span class="hl opt">-</span><span class="hl num">1</span><span class="hl opt">)) {</span> <span class="hl kwb">$n</span> <span class="hl opt">= (</span><span class="hl kwb">$n</span><span class="hl opt">-></span><span class="hl kwd">subtree</span><span class="hl opt">-></span><span class="hl kwd">children</span><span class="hl opt">)[-</span><span class="hl num">1</span><span class="hl opt">]</span> <span class="hl kwa">while</span> <span class="hl kwc">ref</span> <span class="hl kwb">$n</span> <span class="hl kwc">eq</span> <span class="hl str">"Gtk::TreeItem"</span> <span class="hl opt">&&</span> <span class="hl kwb">$n</span><span class="hl opt">-></span><span class="hl kwd">subtree</span> <span class="hl opt">&&</span> <span class="hl kwb">$n</span><span class="hl opt">-></span><span class="hl kwd">expanded</span><span class="hl opt">;</span> <span class="hl kwb">$n</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwa">return if</span> <span class="hl kwc">ref</span> <span class="hl kwb">$c</span><span class="hl opt">-></span><span class="hl kwd">parent</span> <span class="hl kwc">ne</span> <span class="hl str">'Gtk::Tree'</span><span class="hl opt">;</span> <span class="hl opt">&</span><span class="hl kwb">$left</span><span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$w</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>TreeItem<span class="hl opt">(</span><span class="hl kwb">$name</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>key_press_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwb">$e</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">local</span> <span class="hl kwb">$_</span> <span class="hl opt">=</span> <span class="hl kwc">chr</span> <span class="hl opt">(</span><span class="hl kwb">$e</span><span class="hl opt">->{</span>keyval<span class="hl opt">});</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$e</span><span class="hl opt">->{</span>keyval<span class="hl opt">} ></span> <span class="hl num">0x100</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$n</span><span class="hl opt">;</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$left</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwd">/[Q\xb4\x96]/</span><span class="hl opt">;</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$right</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwd">/[S\xb6\x98]/</span><span class="hl opt">;</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$up</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwd">/[R\xb8\x97]/</span><span class="hl opt">;</span> <span class="hl kwb">$n</span> <span class="hl opt">= &</span><span class="hl kwb">$down</span><span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwd">/[T\xb2\x99]/</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$n</span><span class="hl opt">) {</span> <span class="hl kwb">$n</span><span class="hl opt">-></span><span class="hl kwd">focus</span><span class="hl opt">(</span><span class="hl str">'up'</span><span class="hl opt">);</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">signal_emit_stop</span><span class="hl opt">(</span><span class="hl str">"key_press_event"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">expand</span> <span class="hl kwa">if</span> <span class="hl kwd">/[+\xab]/</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">collapse</span> <span class="hl kwa">if</span> <span class="hl kwd">/[-\xad]/</span><span class="hl opt">;</span> <span class="hl kwa">do</span> <span class="hl opt">{</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">expanded</span> ? <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">collapse</span> <span class="hl opt">:</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">expand</span><span class="hl opt">;</span> <span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">signal_emit_stop</span><span class="hl opt">(</span><span class="hl str">"key_press_event"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl kwd">/[\r\x8d]/</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl opt">});</span> <span class="hl kwb">$w</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> create_vbox <span class="hl opt">{</span> gtkset_layout<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>VButtonBox<span class="hl opt">,</span> <span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">] ||</span> <span class="hl str">'spread'</span><span class="hl opt">) }</span> <span class="hl slc">#-#######################</span> <span class="hl slc"># public gtk routines</span> <span class="hl slc">#-#######################</span> <span class="hl kwa">sub</span> add2notebook <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$n, $title, $book</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w1, $w2</span><span class="hl opt">) =</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> <span class="hl kwb">$title, $title</span><span class="hl opt">;</span> <span class="hl kwb">$book</span><span class="hl opt">->{</span>widget_title<span class="hl opt">} =</span> <span class="hl kwb">$w1</span><span class="hl opt">;</span> <span class="hl kwb">$n</span><span class="hl opt">-></span><span class="hl kwd">append_page_menu</span><span class="hl opt">(</span><span class="hl kwb">$book, $w1, $w2</span><span class="hl opt">);</span> <span class="hl kwb">$book</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl kwb">$w1</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl kwb">$w2</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> tree_set_icon <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$node, $label, $icon</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$hbox</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>HBox<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span><span class="hl num">0</span><span class="hl opt">);</span> gtkpack__<span class="hl opt">(</span><span class="hl num">1</span><span class="hl opt">,</span> <span class="hl kwb">$hbox,</span> gtkshow<span class="hl opt">(</span>gtkpng<span class="hl opt">(</span><span class="hl kwb">$icon</span><span class="hl opt">)),</span> gtkshow<span class="hl opt">(</span>new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwb">$label</span><span class="hl opt">)));</span> gtkadd<span class="hl opt">(</span><span class="hl kwb">$node,</span> gtkshow<span class="hl opt">(</span><span class="hl kwb">$hbox</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> ctree_set_icon <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$tree, $node, $icon_pixmap, $icon_mask</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$text, $spacing,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwb">$isleaf, $expanded</span><span class="hl opt">) =</span> <span class="hl kwb">$tree</span><span class="hl opt">-></span><span class="hl kwd">get_node_info</span><span class="hl opt">(</span><span class="hl kwb">$node</span><span class="hl opt">);</span> <span class="hl kwb">$tree</span><span class="hl opt">-></span><span class="hl kwd">set_node_info</span><span class="hl opt">(</span><span class="hl kwb">$node, $text, $spacing, $icon_pixmap, $icon_mask, $icon_pixmap, $icon_mask, $isleaf, $expanded</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> get_text_coord <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$text, $widget4style, $max_width, $max_height, $can_be_greater, $can_be_smaller, $centeredx, $centeredy, $wrap_char</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$wrap_char</span> <span class="hl opt">||=</span> <span class="hl str">' '</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$idx</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$real_width</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$real_height</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@lines</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@widths</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@heights</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$height_elem</span> <span class="hl opt">=</span> <span class="hl kwb">$widget4style</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">-></span><span class="hl kwd">ascent</span> <span class="hl opt">+</span> <span class="hl kwb">$widget4style</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">-></span><span class="hl kwd">descent</span><span class="hl opt">;</span> <span class="hl kwb">$heights</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">] =</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$max_width2</span> <span class="hl opt">=</span> <span class="hl kwb">$max_width</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$height</span> <span class="hl opt">=</span> <span class="hl kwb">$heights</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">] =</span> <span class="hl kwb">$height_elem</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$width</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$flag</span> <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@t</span> <span class="hl opt">=</span> <span class="hl kwc">split</span><span class="hl opt">(</span><span class="hl kwb">$wrap_char, $text</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">@t2</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">($::</span>isInstall <span class="hl opt">&& $::</span>o-<span class="hl opt">>{</span>lang<span class="hl opt">} =~</span> <span class="hl kwd">/ja|zh/</span><span class="hl opt">) {</span> <span class="hl kwb">@t</span> <span class="hl opt">=</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">.</span> <span class="hl kwb">$wrap_char</span> <span class="hl opt">}</span> <span class="hl kwb">@t</span><span class="hl opt">;</span> <span class="hl kwb">$wrap_char</span> <span class="hl opt">=</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@t</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">@c</span> <span class="hl opt">=</span> <span class="hl kwc">split</span><span class="hl opt">(</span><span class="hl str">''</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$i</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$el</span> <span class="hl opt">=</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl kwa">while</span> <span class="hl opt">(</span><span class="hl num">1</span><span class="hl opt">) {</span> <span class="hl kwb">$i</span> <span class="hl opt">>=</span> <span class="hl kwb">@c</span> <span class="hl kwc">and</span> <span class="hl kwa">last</span><span class="hl opt">;</span> <span class="hl kwb">$el</span> <span class="hl opt">.=</span> <span class="hl kwb">$c</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">];</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">ord</span><span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">]) >=</span> <span class="hl num">128</span><span class="hl opt">) {</span> <span class="hl kwb">$el</span> <span class="hl opt">.=</span> <span class="hl kwb">$c</span><span class="hl opt">[</span><span class="hl kwb">$i+1</span><span class="hl opt">];</span> <span class="hl kwb">$i++</span><span class="hl opt">;</span> <span class="hl kwc">push</span> <span class="hl kwb">@t2, $el</span><span class="hl opt">;</span> <span class="hl kwb">$el</span> <span class="hl opt">=</span> <span class="hl str">''</span> <span class="hl opt">}</span> <span class="hl kwb">$i++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$el</span> <span class="hl kwc">ne</span> <span class="hl str">''</span> <span class="hl kwc">and push</span> <span class="hl kwb">@t2, $el</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">@t2</span> <span class="hl opt">=</span> <span class="hl kwb">@t</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@t2</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$l</span> <span class="hl opt">=</span> <span class="hl kwb">$widget4style</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">-></span><span class="hl kwd">string_width</span><span class="hl opt">(</span><span class="hl kwb">$_</span> <span class="hl opt">. (!</span><span class="hl kwb">$flag</span> ? <span class="hl kwb">$wrap_char</span> <span class="hl opt">:</span> <span class="hl str">''</span><span class="hl opt">));</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$width</span> <span class="hl opt">+</span> <span class="hl kwb">$l</span> <span class="hl opt">></span> <span class="hl kwb">$max_width2</span> <span class="hl opt">&& !</span><span class="hl kwb">$flag</span><span class="hl opt">) {</span> <span class="hl kwb">$flag</span> <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl kwb">$height</span> <span class="hl opt">+=</span> <span class="hl kwb">$height_elem</span> <span class="hl opt">+</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl kwb">$heights</span><span class="hl opt">[</span><span class="hl kwb">$idx+1</span><span class="hl opt">] =</span> <span class="hl kwb">$height</span><span class="hl opt">;</span> <span class="hl kwb">$widths</span><span class="hl opt">[</span><span class="hl kwb">$idx</span><span class="hl opt">] =</span> <span class="hl kwb">$centeredx</span> <span class="hl opt">&& !</span><span class="hl kwb">$can_be_smaller</span> ? <span class="hl opt">(</span>max<span class="hl opt">(</span><span class="hl kwb">$max_width2</span><span class="hl opt">-</span><span class="hl kwb">$width,</span> <span class="hl num">0</span><span class="hl opt">))/</span><span class="hl num">2</span> <span class="hl opt">:</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$width</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$idx++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$lines</span><span class="hl opt">[</span><span class="hl kwb">$idx</span><span class="hl opt">] =</span> <span class="hl kwb">$flag</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> <span class="hl kwb">$lines</span><span class="hl opt">[</span><span class="hl kwb">$idx</span><span class="hl opt">] .</span> <span class="hl kwb">$wrap_char</span> <span class="hl opt">.</span> <span class="hl kwb">$_</span><span class="hl opt">;</span> <span class="hl kwb">$width</span> <span class="hl opt">+=</span> <span class="hl kwb">$l</span><span class="hl opt">;</span> <span class="hl kwb">$flag</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$l</span> <span class="hl opt"><=</span> <span class="hl kwb">$max_width2</span> <span class="hl kwc">or</span> <span class="hl kwb">$max_width2</span> <span class="hl opt">=</span> <span class="hl kwb">$l</span><span class="hl opt">;</span> <span class="hl kwb">$width</span> <span class="hl opt"><=</span> <span class="hl kwb">$real_width</span> <span class="hl kwc">or</span> <span class="hl kwb">$real_width</span> <span class="hl opt">=</span> <span class="hl kwb">$width</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$height</span> <span class="hl opt">+=</span> <span class="hl kwb">$height_elem</span><span class="hl opt">;</span> <span class="hl kwb">$widths</span><span class="hl opt">[</span><span class="hl kwb">$idx</span><span class="hl opt">] =</span> <span class="hl kwb">$centeredx</span> <span class="hl opt">&& !</span><span class="hl kwb">$can_be_smaller</span> ? <span class="hl opt">(</span>max<span class="hl opt">(</span><span class="hl kwb">$max_width2</span><span class="hl opt">-</span><span class="hl kwb">$width,</span> <span class="hl num">0</span><span class="hl opt">))/</span><span class="hl num">2</span> <span class="hl opt">:</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$height</span> <span class="hl opt"><</span> <span class="hl kwb">$real_height</span> <span class="hl kwc">or</span> <span class="hl kwb">$real_height</span> <span class="hl opt">=</span> <span class="hl kwb">$height</span><span class="hl opt">;</span> <span class="hl kwb">$width</span> <span class="hl opt">=</span> <span class="hl kwb">$max_width</span><span class="hl opt">;</span> <span class="hl kwb">$height</span> <span class="hl opt">=</span> <span class="hl kwb">$max_height</span><span class="hl opt">;</span> <span class="hl kwb">$real_width</span> <span class="hl opt"><</span> <span class="hl kwb">$max_width</span> <span class="hl opt">&&</span> <span class="hl kwb">$can_be_smaller</span> <span class="hl kwc">and</span> <span class="hl kwb">$width</span> <span class="hl opt">=</span> <span class="hl kwb">$real_width</span><span class="hl opt">;</span> <span class="hl kwb">$real_width</span> <span class="hl opt">></span> <span class="hl kwb">$max_width</span> <span class="hl opt">&&</span> <span class="hl kwb">$can_be_greater</span> <span class="hl kwc">and</span> <span class="hl kwb">$width</span> <span class="hl opt">=</span> <span class="hl kwb">$real_width</span><span class="hl opt">;</span> <span class="hl kwb">$real_height</span> <span class="hl opt"><</span> <span class="hl kwb">$max_height</span> <span class="hl opt">&&</span> <span class="hl kwb">$can_be_smaller</span> <span class="hl kwc">and</span> <span class="hl kwb">$height</span> <span class="hl opt">=</span> <span class="hl kwb">$real_height</span><span class="hl opt">;</span> <span class="hl kwb">$real_height</span> <span class="hl opt">></span> <span class="hl kwb">$max_height</span> <span class="hl opt">&&</span> <span class="hl kwb">$can_be_greater</span> <span class="hl kwc">and</span> <span class="hl kwb">$height</span> <span class="hl opt">=</span> <span class="hl kwb">$real_height</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$centeredy</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$dh</span> <span class="hl opt">= (</span><span class="hl kwb">$height</span><span class="hl opt">-</span><span class="hl kwb">$real_height</span><span class="hl opt">)</span><span class="hl kwd">/2 + ($height_elem)/</span><span class="hl num">2</span><span class="hl opt">;</span> <span class="hl kwb">@heights</span> <span class="hl opt">=</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">+</span> <span class="hl kwb">$dh</span> <span class="hl opt">}</span> <span class="hl kwb">@heights</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">(</span><span class="hl kwb">$width, $height,</span> \<span class="hl kwb">@lines,</span> \<span class="hl kwb">@widths,</span> \<span class="hl kwb">@heights</span><span class="hl opt">)</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkicons_labels_widget <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$args, $w, $widget_for_font, $background, $back_pixbuf, $x_back, $y_back, $x_round,</span> <span class="hl kwb">$y_round, $x_back2, $y_back2, $icon_width, $icon_height, $exec_func, $exec_hash</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@tab</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$i</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$cursor_hand</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Cursor <span class="hl num">60</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$cursor_normal</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Cursor <span class="hl num">68</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@args</span> <span class="hl opt">=</span> <span class="hl kwb">@$args</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@args</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$label, $tag</span><span class="hl opt">) = (</span><span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">]);</span> <span class="hl kwc">die</span> <span class="hl str">"</span><span class="hl ipl">$label</span> <span class="hl str">'s icon is missing"</span> <span class="hl kwa">unless</span> <span class="hl kwb">$exec_hash</span><span class="hl opt">->{</span><span class="hl kwb">$label</span><span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$dbl_area, $pix, $width, $height</span><span class="hl opt">);</span> <span class="hl slc"># initialized in call back</span> <span class="hl kwc">my</span> <span class="hl kwb">$darea</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>DrawingArea<span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$icon,</span> <span class="hl kwc">undef</span><span class="hl opt">) =</span> gtkcreate_png<span class="hl opt">(</span><span class="hl kwb">$tag</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$pixbuf</span> <span class="hl opt">=</span> compose_with_back<span class="hl opt">(</span><span class="hl kwb">$tag, $back_pixbuf</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$pixbuf_h</span> <span class="hl opt">=</span> compose_with_back<span class="hl opt">(</span><span class="hl kwb">$tag, $back_pixbuf,</span> <span class="hl num">170</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$draw</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$widget, $event</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$dx, $dy</span><span class="hl opt">) = (</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">],</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">3</span><span class="hl opt">]);</span> <span class="hl kwc">my</span> <span class="hl kwb">$state</span> <span class="hl opt">=</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">};</span> <span class="hl kwa">if</span> <span class="hl opt">(!</span><span class="hl kwc">defined</span><span class="hl opt">(</span><span class="hl kwb">$dbl_area</span><span class="hl opt">)) {</span> <span class="hl opt">(</span><span class="hl kwb">$pix, $width, $height</span><span class="hl opt">) =</span> create_pix_text<span class="hl opt">(</span><span class="hl kwb">$darea, $label, $widget_for_font</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">,</span> <span class="hl kwb">$x_round,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">, [</span><span class="hl kwb">$background, $background</span><span class="hl opt">],</span> <span class="hl kwb">$x_back2, $y_back2,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl opt">(</span><span class="hl kwb">$dx, $dy</span><span class="hl opt">) = (</span>max<span class="hl opt">(</span><span class="hl kwb">$width, $x_round</span><span class="hl opt">),</span> <span class="hl kwb">$y_round</span> <span class="hl opt">+</span> <span class="hl kwb">$height</span><span class="hl opt">);</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">set_usize</span><span class="hl opt">(</span><span class="hl kwb">$dx, $dy</span><span class="hl opt">);</span> <span class="hl kwb">$dbl_area</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Pixmap<span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">,</span> max<span class="hl opt">(</span><span class="hl kwb">$width, $x_round</span><span class="hl opt">),</span> <span class="hl kwb">$y_round</span> <span class="hl opt">+</span> <span class="hl kwb">$height</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl slc"># Redraw if state change (selected <=> not selected)</span> <span class="hl kwa">if</span> <span class="hl opt">(!</span><span class="hl kwb">$dbl_area</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} ||</span> <span class="hl kwb">$state</span> <span class="hl opt">!=</span> <span class="hl kwb">$dbl_area</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">}) {</span> <span class="hl kwb">$dbl_area</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} =</span> <span class="hl kwb">$state</span><span class="hl opt">;</span> fill_tiled<span class="hl opt">(</span><span class="hl kwb">$darea, $dbl_area, $background, $x_back2, $y_back2, $dx, $dy</span><span class="hl opt">);</span> <span class="hl opt">(</span><span class="hl kwb">$state</span> ? <span class="hl kwb">$pixbuf_h</span> <span class="hl opt">:</span> <span class="hl kwb">$pixbuf</span><span class="hl opt">)</span> <span class="hl opt">-></span><span class="hl kwd">render_to_drawable</span><span class="hl opt">(</span><span class="hl kwb">$dbl_area, $darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">fg_gc</span><span class="hl opt">(</span><span class="hl str">'normal'</span><span class="hl opt">),</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$pixbuf</span><span class="hl opt">-></span><span class="hl kwd">get_width</span><span class="hl opt">,</span> <span class="hl kwb">$pixbuf</span><span class="hl opt">-></span><span class="hl kwd">get_height</span><span class="hl opt">,</span> <span class="hl str">'normal'</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwb">$dbl_area</span><span class="hl opt">-></span><span class="hl kwd">draw_pixmap</span><span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">bg_gc</span><span class="hl opt">(</span><span class="hl str">'normal'</span><span class="hl opt">), (</span><span class="hl kwb">$state</span> ? <span class="hl kwb">$pix</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">] :</span> <span class="hl kwb">$pix</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">]),</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">, (</span><span class="hl kwb">$dx</span> <span class="hl opt">-</span> <span class="hl kwb">$width</span><span class="hl opt">)/</span><span class="hl num">2</span><span class="hl opt">,</span> <span class="hl kwb">$y_round, $width, $height</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">draw_pixmap</span><span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">bg_gc</span><span class="hl opt">(</span><span class="hl str">'normal'</span><span class="hl opt">),</span> <span class="hl kwb">$dbl_area,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$dx, $dy</span><span class="hl opt">);</span> <span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">->{</span>dx<span class="hl opt">},</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span>dy<span class="hl opt">}) = (</span><span class="hl kwb">$dx, $dy</span><span class="hl opt">);</span> <span class="hl opt">};</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} =</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>expose_event <span class="hl opt">=></span> <span class="hl kwb">$draw</span><span class="hl opt">);</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">set_events</span><span class="hl opt">([</span><span class="hl str">'exposure_mask'</span><span class="hl opt">,</span> <span class="hl str">'enter_notify_mask'</span><span class="hl opt">,</span> <span class="hl str">'leave_notify_mask'</span><span class="hl opt">,</span> <span class="hl str">'button_press_mask'</span><span class="hl opt">,</span> <span class="hl str">'button_release_mask'</span> <span class="hl opt">]);</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>enter_notify_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} ==</span> <span class="hl num">0</span><span class="hl opt">) {</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} =</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl opt">&</span><span class="hl kwb">$draw</span><span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">});</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>leave_notify_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} ==</span> <span class="hl num">1</span><span class="hl opt">) {</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} =</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl opt">&</span><span class="hl kwb">$draw</span><span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">});</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>button_release_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$darea</span><span class="hl opt">->{</span><span class="hl kwc">state</span><span class="hl opt">} =</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">draw</span><span class="hl opt">(</span><span class="hl kwc">undef</span><span class="hl opt">);</span> <span class="hl kwb">$exec_func</span><span class="hl opt">->(</span><span class="hl kwb">$tag, $exec_hash</span><span class="hl opt">->{</span><span class="hl kwb">$label</span><span class="hl opt">});</span> <span class="hl opt">});</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>realize <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">set_cursor</span><span class="hl opt">(</span><span class="hl kwb">$cursor_hand</span><span class="hl opt">) });</span> <span class="hl kwb">$tab</span><span class="hl opt">[</span><span class="hl kwb">$i</span><span class="hl opt">] =</span> <span class="hl kwb">$darea</span><span class="hl opt">;</span> <span class="hl kwb">$i++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">$fixed</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Fixed<span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@tab</span><span class="hl opt">) {</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">put</span><span class="hl opt">(</span><span class="hl kwb">$_,</span> <span class="hl num">75</span><span class="hl opt">,</span> <span class="hl num">65</span><span class="hl opt">) }</span> <span class="hl kwc">my</span> <span class="hl kwb">$is_resized</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$w_ret</span> <span class="hl opt">=</span> createScrolledWindow<span class="hl opt">(</span><span class="hl kwb">$fixed,</span> <span class="hl opt">[</span><span class="hl str">'automatic'</span><span class="hl opt">,</span> <span class="hl str">'automatic'</span><span class="hl opt">]);</span> <span class="hl kwc">my</span> <span class="hl kwb">$redraw_function</span><span class="hl opt">;</span> <span class="hl kwb">$redraw_function</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$is_resized</span> <span class="hl opt">==</span> <span class="hl num">0</span><span class="hl opt">) {</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl num">3</span> <span class="hl opt"><</span> <span class="hl kwb">$#args</span><span class="hl opt">) {</span> <span class="hl slc">#- Ugly hacks, don't touch! ########</span> <span class="hl kwc">my</span> <span class="hl kwb">$timeout1</span> <span class="hl opt">=</span> Gtk-<span class="hl opt">></span><span class="hl kwd">timeout_add</span><span class="hl opt">(</span><span class="hl num">100</span><span class="hl opt">,</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">set_usize</span><span class="hl opt">(</span><span class="hl kwb">$w_ret</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">] -</span> <span class="hl num">22</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl opt">&</span><span class="hl kwb">$redraw_function</span><span class="hl opt">;</span> <span class="hl num">0</span> <span class="hl opt">});</span> <span class="hl opt">}</span> <span class="hl kwb">$is_resized</span> <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">move</span><span class="hl opt">(</span><span class="hl kwb">@$_</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> compute_icons<span class="hl opt">(</span><span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">]-</span><span class="hl num">22</span><span class="hl opt">,</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">3</span><span class="hl opt">],</span> <span class="hl num">40</span><span class="hl opt">,</span> <span class="hl num">15</span><span class="hl opt">,</span> <span class="hl num">20</span><span class="hl opt">,</span> <span class="hl kwb">@tab</span><span class="hl opt">);</span> <span class="hl opt">};</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>expose_event <span class="hl opt">=></span> <span class="hl kwb">$redraw_function</span><span class="hl opt">);</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>realize <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$fixed</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">set_back_pixmap</span><span class="hl opt">(</span><span class="hl kwb">$background,</span> <span class="hl num">0</span><span class="hl opt">) });</span> <span class="hl kwb">$fixed</span><span class="hl opt">->{</span>redraw_function<span class="hl opt">} =</span> <span class="hl kwb">$redraw_function</span><span class="hl opt">;</span> <span class="hl kwb">$w_ret</span><span class="hl opt">-></span><span class="hl kwd">vscrollbar</span><span class="hl opt">-></span><span class="hl kwd">set_usize</span><span class="hl opt">(</span><span class="hl num">19</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">);</span> gtkhide<span class="hl opt">(</span>gtkset_border_width<span class="hl opt">(</span><span class="hl kwb">$w_ret,</span> <span class="hl opt">-</span><span class="hl num">2</span><span class="hl opt">));</span> <span class="hl slc">#- ok, this is very very ugly...</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> n_line_size <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$nbline, $type, $widget</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$font</span> <span class="hl opt">=</span> <span class="hl kwb">$widget</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$spacing</span> <span class="hl opt">= ${{</span> text <span class="hl opt">=></span> <span class="hl num">0</span><span class="hl opt">,</span> various <span class="hl opt">=></span> <span class="hl num">17</span> <span class="hl opt">}}{</span><span class="hl kwb">$type</span><span class="hl opt">};</span> <span class="hl kwb">$nbline</span> <span class="hl opt">* (</span><span class="hl kwb">$font</span><span class="hl opt">-></span><span class="hl kwd">ascent</span> <span class="hl opt">+</span> <span class="hl kwb">$font</span><span class="hl opt">-></span><span class="hl kwd">descent</span> <span class="hl opt">+</span> <span class="hl kwb">$spacing</span><span class="hl opt">) +</span> <span class="hl num">8</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> write_on_pixmap <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$pixmap, $x_pos, $y_pos, @text</span><span class="hl opt">)=</span><span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$gdkpixmap,</span> <span class="hl kwc">undef</span><span class="hl opt">) =</span> <span class="hl kwb">$pixmap</span><span class="hl opt">-></span><span class="hl kwd">get</span><span class="hl opt">();</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$width, $height</span><span class="hl opt">) = (</span><span class="hl num">440</span><span class="hl opt">,</span> <span class="hl num">250</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$gc</span> <span class="hl opt">=</span> Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>GC-<span class="hl opt">></span><span class="hl kwd">new</span><span class="hl opt">(</span>gtkroot<span class="hl opt">());</span> <span class="hl kwb">$gc</span><span class="hl opt">-></span><span class="hl kwd">set_foreground</span><span class="hl opt">(</span>gtkcolor<span class="hl opt">(</span><span class="hl num">8448</span><span class="hl opt">,</span> <span class="hl num">17664</span><span class="hl opt">,</span> <span class="hl num">40191</span><span class="hl opt">));</span> <span class="hl slc">#- in hex : 33, 69, 157</span> <span class="hl kwc">my</span> <span class="hl kwb">$darea</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>DrawingArea<span class="hl opt">();</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">size</span><span class="hl opt">(</span><span class="hl kwb">$width, $height</span><span class="hl opt">);</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">set_usize</span><span class="hl opt">(</span><span class="hl kwb">$width, $height</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$draw</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$style</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Style<span class="hl opt">;</span> <span class="hl slc">#- i18n : you can change the font.</span> <span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">(</span>Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Font-<span class="hl opt">></span><span class="hl kwd">fontset_load</span><span class="hl opt">(</span>_<span class="hl opt">(</span><span class="hl str">"-adobe-times-bold-r-normal--17-*-100-100-p-*-iso8859-*,*-r-*"</span><span class="hl opt">)));</span> <span class="hl kwc">my</span> <span class="hl kwb">$y_pos2</span> <span class="hl opt">=</span> <span class="hl kwb">$y_pos</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@text</span><span class="hl opt">) {</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">draw_string</span><span class="hl opt">(</span><span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">,</span> <span class="hl kwb">$gc, $x_pos, $y_pos2, $_</span><span class="hl opt">);</span> <span class="hl kwb">$y_pos2</span> <span class="hl opt">+=</span> <span class="hl num">20</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">};</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">signal_connect</span><span class="hl opt">(</span>expose_event <span class="hl opt">=></span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">draw_rectangle</span><span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">white_gc</span><span class="hl opt">,</span> <span class="hl num">1</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl kwb">$width, $height</span><span class="hl opt">);</span> <span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">-></span><span class="hl kwd">draw_pixmap</span> <span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">white_gc</span><span class="hl opt">,</span> <span class="hl kwb">$gdkpixmap,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl opt">(</span><span class="hl kwb">$darea</span><span class="hl opt">-></span><span class="hl kwd">allocation</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">]-</span><span class="hl kwb">$width</span><span class="hl opt">)</span><span class="hl kwd">/2, ($darea->allocation->[3]-$height)/</span><span class="hl num">2</span><span class="hl opt">,</span> <span class="hl kwb">$width, $height</span><span class="hl opt">);</span> <span class="hl opt">&</span><span class="hl kwb">$draw</span><span class="hl opt">();</span> <span class="hl opt">});</span> <span class="hl kwb">$darea</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc">#-#######################</span> <span class="hl slc"># kind of private gtk routines</span> <span class="hl slc">#-#######################</span> <span class="hl kwa">sub</span> create_pix_text <span class="hl opt">{</span> <span class="hl slc">#ref widget, txt, color_txt, [font], [width], [height], flag1, flag2, [ (background background_highlighted background_selecteded) backsize x y], centeredx, centeredy</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$w, $text, $font, $max_width, $max_height, $can_be_greater, $can_be_smaller, $backgrounds, $x_back, $y_back, $centeredx, $centeredy</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$color_background</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$fake_darea</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>DrawingArea<span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$style</span> <span class="hl opt">=</span> <span class="hl kwb">$fake_darea</span><span class="hl opt">-></span><span class="hl kwd">style</span><span class="hl opt">-></span><span class="hl kwd">copy</span><span class="hl opt">();</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$font</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'Gtk::Gdk::Font'</span><span class="hl opt">) {</span> <span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">(</span><span class="hl kwb">$font</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">$font</span> <span class="hl kwc">and</span> <span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">(</span>Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Font-<span class="hl opt">></span><span class="hl kwd">fontset_load</span><span class="hl opt">(</span><span class="hl kwb">$font</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwb">$fake_darea</span><span class="hl opt">-></span><span class="hl kwd">set_style</span><span class="hl opt">(</span><span class="hl kwb">$style</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$width, $height, $lines, $widths, $heights</span><span class="hl opt">) =</span> get_text_coord <span class="hl opt">(</span> <span class="hl kwb">$text, $fake_darea, $max_width, $max_height, $can_be_greater, $can_be_smaller, $centeredx, $centeredy</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$pix</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$j</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@$backgrounds</span><span class="hl opt">) {</span> <span class="hl kwb">$pix</span><span class="hl opt">->[</span><span class="hl kwb">$j</span><span class="hl opt">] =</span> new Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Pixmap<span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">,</span> <span class="hl kwb">$width, $height</span><span class="hl opt">);</span> fill_tiled<span class="hl opt">(</span><span class="hl kwb">$w, $pix</span><span class="hl opt">->[</span><span class="hl kwb">$j</span><span class="hl opt">],</span> <span class="hl kwb">$backgrounds</span><span class="hl opt">->[</span><span class="hl kwb">$j</span><span class="hl opt">],</span> <span class="hl kwb">$x_back, $y_back, $width, $height</span><span class="hl opt">);</span> <span class="hl kwb">$j++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">$color_text</span> <span class="hl opt">=</span> gtkcolor<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$gc_text</span> <span class="hl opt">=</span> new Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>GC<span class="hl opt">(</span><span class="hl kwb">$w</span><span class="hl opt">-></span><span class="hl kwd">window</span><span class="hl opt">);</span> <span class="hl kwb">$gc_text</span><span class="hl opt">-></span><span class="hl kwd">set_foreground</span><span class="hl opt">(</span><span class="hl kwb">$color_text</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$i</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(@{</span><span class="hl kwb">$lines</span><span class="hl opt">}) {</span> <span class="hl kwb">$j</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl kwc">my</span> <span class="hl kwb">$pix</span> <span class="hl opt">(</span><span class="hl kwb">@$pix</span><span class="hl opt">) {</span> <span class="hl kwb">$pix</span><span class="hl opt">-></span><span class="hl kwd">draw_string</span><span class="hl opt">(</span><span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">,</span> <span class="hl kwb">$gc_text,</span> <span class="hl opt">${</span><span class="hl kwb">$widths</span><span class="hl opt">}[</span><span class="hl kwb">$i</span><span class="hl opt">], ${</span><span class="hl kwb">$heights</span><span class="hl opt">}[</span><span class="hl kwb">$i</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">);</span> <span class="hl kwb">$pix</span><span class="hl opt">-></span><span class="hl kwd">draw_string</span><span class="hl opt">(</span><span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">,</span> <span class="hl kwb">$gc_text,</span> <span class="hl opt">${</span><span class="hl kwb">$widths</span><span class="hl opt">}[</span><span class="hl kwb">$i</span><span class="hl opt">] +</span> <span class="hl num">1</span><span class="hl opt">, ${</span><span class="hl kwb">$heights</span><span class="hl opt">}[</span><span class="hl kwb">$i</span><span class="hl opt">],</span> <span class="hl kwb">$_</span><span class="hl opt">)</span> <span class="hl kwa">if</span> <span class="hl kwb">$j</span><span class="hl opt">;</span> <span class="hl kwb">$j++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$i++</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">(</span><span class="hl kwb">$pix, $width, $height</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkctree_children <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$node</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl kwb">$node</span> <span class="hl kwc">or</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwa">for</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">$p</span> <span class="hl opt">=</span> <span class="hl kwb">$node</span><span class="hl opt">-></span><span class="hl kwd">row</span><span class="hl opt">-></span><span class="hl kwd">children</span><span class="hl opt">;</span> <span class="hl kwb">$p</span><span class="hl opt">;</span> <span class="hl kwb">$p</span> <span class="hl opt">=</span> <span class="hl kwb">$p</span><span class="hl opt">-></span><span class="hl kwd">row</span><span class="hl opt">-></span><span class="hl kwd">sibling</span><span class="hl opt">) {</span> <span class="hl kwc">push</span> <span class="hl kwb">@l, $p</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkpowerpack <span class="hl opt">{</span> <span class="hl slc">#- Get Default Attributes (if any). 2 syntaxes allowed :</span> <span class="hl slc">#- gtkpowerpack( {expand => 1, fill => 0}, $box...) : the attributes are picked from a specified hash ref</span> <span class="hl slc">#- gtkpowerpack(1,0,1, $box, ...) : the attributes are picked from the non-ref list, in the order (expand, fill, padding, pack_end).</span> <span class="hl kwc">my</span> <span class="hl kwb">$RefDefaultAttrs</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> <span class="hl kwc">eq</span> <span class="hl str">'HASH'</span><span class="hl opt">) {</span> <span class="hl kwb">$RefDefaultAttrs</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span> <span class="hl opt">}</span> <span class="hl kwa">elsif</span> <span class="hl opt">(!</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])) {</span> <span class="hl kwb">$RefDefaultAttrs</span> <span class="hl opt">= {};</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl str">"expand"</span><span class="hl opt">,</span> <span class="hl str">"fill"</span><span class="hl opt">,</span> <span class="hl str">"padding"</span><span class="hl opt">,</span> <span class="hl str">"pack_end"</span><span class="hl opt">) {</span> <span class="hl opt">!</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> ? <span class="hl kwb">$RefDefaultAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl kwc">shift</span> <span class="hl opt">:</span> <span class="hl kwa">last</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">$box</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwa">while</span> <span class="hl opt">(</span><span class="hl kwb">@_</span><span class="hl opt">) {</span> <span class="hl slc">#- Get attributes (if specified). 4 syntaxes allowed (default values are undef ie. false...) :</span> <span class="hl slc">#- gtkpowerpack({defaultattrs}, $box, $widget1, $widget2, ...) : the attrs are picked from the default ones (if they exist)</span> <span class="hl slc">#- gtkpowerpack($box, {fill=>1, expand=>0, ...}, $widget1, ...) : the attributes are picked from a specified hash ref</span> <span class="hl slc">#- gtkpowerpack($box, [1,0,1], $widget1, ...) : the attributes are picked from the array ref : (expand, fill, padding, pack_end).</span> <span class="hl slc">#- gtkpowerpack({attr=>'arg'}, $box, 1, $widget1, 0, $widget2, etc...) : the 'arg' value will tell gtkpowerpack to always read the </span> <span class="hl slc">#- attr value directly in the arg list (avoiding confusion between value 0 and Gtk::Label("0"). That can simplify some writings but</span> <span class="hl slc">#- this arg(s) MUST then be present...</span> <span class="hl kwc">my</span> <span class="hl kwb">%attr</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$RefAttrs</span><span class="hl opt">;</span> <span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> <span class="hl kwc">eq</span> <span class="hl str">'HASH'</span> <span class="hl opt">||</span> <span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> <span class="hl kwc">eq</span> <span class="hl str">'ARRAY'</span> <span class="hl kwc">and</span> <span class="hl kwb">$RefAttrs</span> <span class="hl opt">=</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl str">"expand"</span><span class="hl opt">,</span> <span class="hl str">"fill"</span><span class="hl opt">,</span> <span class="hl str">"padding"</span><span class="hl opt">,</span> <span class="hl str">"pack_end"</span><span class="hl opt">) {</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$RefDefaultAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">}</span> <span class="hl kwc">eq</span> <span class="hl str">'arg'</span><span class="hl opt">) {</span> <span class="hl kwc">ref</span> <span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> <span class="hl kwc">and die</span> <span class="hl str">"error in packing definition</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$RefAttrs</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'ARRAY'</span> <span class="hl kwc">and shift</span> <span class="hl kwb">@$RefAttrs</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">elsif</span> <span class="hl opt">(</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$RefAttrs</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'HASH'</span> <span class="hl opt">&&</span> <span class="hl kwc">defined</span><span class="hl opt">(</span><span class="hl kwb">$RefAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">})) {</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl kwb">$RefAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">};</span> <span class="hl opt">}</span> <span class="hl kwa">elsif</span> <span class="hl opt">(</span><span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$RefAttrs</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'ARRAY'</span><span class="hl opt">) {</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl kwc">shift</span> <span class="hl kwb">@$RefAttrs</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">elsif</span> <span class="hl opt">(</span><span class="hl kwc">defined</span><span class="hl opt">(</span><span class="hl kwb">$RefDefaultAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">})) {</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl kwc">int</span> <span class="hl kwb">$RefDefaultAttrs</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">};</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl slc">#- Get and pack the widget (create it if necessary when it is a label...)</span> <span class="hl kwc">my</span> <span class="hl kwb">$widget</span> <span class="hl opt">=</span> <span class="hl kwc">ref</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">])</span> ? <span class="hl kwc">shift</span> <span class="hl opt">:</span> new Gtk<span class="hl opt">::</span>Label<span class="hl opt">(</span><span class="hl kwc">shift</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$attr</span><span class="hl opt">{</span>pack_end<span class="hl opt">}) {</span> <span class="hl kwb">$box</span><span class="hl opt">-></span><span class="hl kwd">pack_end</span><span class="hl opt">(</span><span class="hl kwb">$widget, $attr</span><span class="hl opt">{</span>expand<span class="hl opt">},</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span>fill<span class="hl opt">},</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span>padding<span class="hl opt">})}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">$box</span><span class="hl opt">-></span><span class="hl kwd">pack_start</span><span class="hl opt">(</span><span class="hl kwb">$widget, $attr</span><span class="hl opt">{</span>expand<span class="hl opt">},</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span>fill<span class="hl opt">},</span> <span class="hl kwb">$attr</span><span class="hl opt">{</span>padding<span class="hl opt">}) }</span> <span class="hl kwb">$widget</span><span class="hl opt">-></span><span class="hl kwd">show</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">$box</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkset_default_fontset <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$fontset</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$style</span> <span class="hl opt">=</span> Gtk<span class="hl opt">::</span>Widget-<span class="hl opt">></span><span class="hl kwd">get_default_style</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$f</span> <span class="hl opt">=</span> Gtk<span class="hl opt">::</span>Gdk<span class="hl opt">::</span>Font-<span class="hl opt">></span><span class="hl kwd">fontset_load</span><span class="hl opt">(</span><span class="hl kwb">$fontset</span><span class="hl opt">)</span> <span class="hl kwc">or die</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl kwb">$style</span><span class="hl opt">-></span><span class="hl kwd">font</span><span class="hl opt">(</span><span class="hl kwb">$f</span><span class="hl opt">);</span> Gtk<span class="hl opt">::</span>Widget-<span class="hl opt">></span><span class="hl kwd">set_default_style</span><span class="hl opt">(</span><span class="hl kwb">$style</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> gtkcreate_imlib <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$f</span><span class="hl opt">) =</span> <span class="hl kwc">shift</span><span class="hl opt">;</span> <span class="hl kwb">$f</span> <span class="hl opt">=~</span> m<span class="hl opt">|.</span>png<span class="hl opt">$|</span> <span class="hl kwc">or</span> <span class="hl kwb">$f</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$f</span><span class="hl str">.png"</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$f</span> <span class="hl opt">!~</span> <span class="hl kwd">/\//) { -e "$_/</span>$f<span class="hl str">" and</span> <span class="hl ipl">$f</span> <span class="hl str">= "</span><span class="hl kwb">$_/$f</span><span class="hl str">", last foreach icon_paths() }</span> <span class="hl str"> Gtk::Gdk::ImlibImage->load_image(</span><span class="hl ipl">$f</span><span class="hl str">);</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub gtkxpm { new Gtk::Pixmap(gtkcreate_xpm(</span><span class="hl ipl">@_</span><span class="hl str">)) }</span> <span class="hl str">sub gtkpng { new Gtk::Pixmap(gtkcreate_png(</span><span class="hl ipl">@_</span><span class="hl str">)) }</span> <span class="hl str">sub gtkcreate_xpm {</span> <span class="hl str"> my (</span><span class="hl ipl">$f</span><span class="hl str">) =</span> <span class="hl ipl">@_</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$rw</span> <span class="hl str">= gtkroot();</span> <span class="hl str"></span> <span class="hl ipl">$f</span> <span class="hl str">=~ m|.xpm$| or</span> <span class="hl ipl">$f</span> <span class="hl str">= "</span><span class="hl kwb">$f</span><span class="hl opt">.</span>xpm<span class="hl str">";</span> <span class="hl str"> if (</span><span class="hl ipl">$f</span> <span class="hl str">!~ /\//) { -e "</span><span class="hl kwb">$_/$f</span><span class="hl str">" and</span> <span class="hl ipl">$f</span> <span class="hl str">= "</span><span class="hl kwb">$_/$f</span><span class="hl str">", last foreach icon_paths() }</span> <span class="hl str"> my</span> <span class="hl ipl">@l</span> <span class="hl str">= Gtk::Gdk::Pixmap->create_from_xpm(</span><span class="hl ipl">$rw,</span> <span class="hl str">new Gtk::Style->bg('normal'),</span> <span class="hl ipl">$f</span><span class="hl str">) or die "</span>gtkcreate_xpm<span class="hl opt">:</span> missing pixmap file <span class="hl kwb">$f</span><span class="hl str">";</span> <span class="hl str"></span> <span class="hl ipl">@l</span><span class="hl str">;</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub gtkcreate_png_pixbuf {</span> <span class="hl str"> my (</span><span class="hl ipl">$f</span><span class="hl str">) = shift;</span> <span class="hl str"> die 'gdk-pixbuf library is not available' unless (</span><span class="hl ipl">$use_pixbuf</span><span class="hl str">);</span> <span class="hl str"></span> <span class="hl ipl">$f</span> <span class="hl str">=~ /\.(png|jpg)</span><span class="hl ipl">$/</span> <span class="hl str">or</span> <span class="hl ipl">$f</span> <span class="hl str">.= '.png';</span> <span class="hl str"> if (</span><span class="hl ipl">$f</span> <span class="hl str">!~ /^\//) { -e "</span><span class="hl kwb">$_/$f</span><span class="hl str">" and</span> <span class="hl ipl">$f</span> <span class="hl str">= "</span><span class="hl kwb">$_/$f</span><span class="hl str">", last foreach icon_paths() }</span> <span class="hl str"> Gtk::Gdk::Pixbuf->new_from_file(</span><span class="hl ipl">$f</span><span class="hl str">) or die "</span>gtkcreate_png<span class="hl opt">:</span> missing png file <span class="hl kwb">$f</span><span class="hl str">";</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub gtkcreate_png {</span> <span class="hl str"> my (</span><span class="hl ipl">$f</span><span class="hl str">) = shift;</span> <span class="hl str"></span> <span class="hl ipl">$f</span> <span class="hl str">=~ /\.png</span><span class="hl ipl">$/</span> <span class="hl str">or</span> <span class="hl ipl">$f</span> <span class="hl str">.= '.png';</span> <span class="hl str"> if (</span><span class="hl ipl">$f</span> <span class="hl str">!~ /^\//) { -e "</span><span class="hl kwb">$_/$f</span><span class="hl str">" and</span> <span class="hl ipl">$f</span> <span class="hl str">= "</span><span class="hl kwb">$_/$f</span><span class="hl str">", last foreach icon_paths() }</span> <span class="hl str"> if (</span><span class="hl ipl">$use_imlib</span><span class="hl str">) {</span> <span class="hl str"> my</span> <span class="hl ipl">$im</span> <span class="hl str">= Gtk::Gdk::ImlibImage->load_image(</span><span class="hl ipl">$f</span><span class="hl str">) or die "</span>gtkcreate_png<span class="hl opt">:</span> missing png file <span class="hl kwb">$f</span><span class="hl str">";</span> <span class="hl str"></span> <span class="hl ipl">$im</span><span class="hl str">->render(</span><span class="hl ipl">$im</span><span class="hl str">->rgb_width,</span> <span class="hl ipl">$im</span><span class="hl str">->rgb_height);</span> <span class="hl str"> return (</span><span class="hl ipl">$im</span><span class="hl str">->move_image(),</span> <span class="hl ipl">$im</span><span class="hl str">->move_mask);</span> <span class="hl str"> } elsif (</span><span class="hl ipl">$use_pixbuf</span><span class="hl str">) {</span> <span class="hl str"># my</span> <span class="hl ipl">$pixbuf</span> <span class="hl str">= gtkcreate_png_pixbuf(</span><span class="hl ipl">$f</span><span class="hl str">);</span> <span class="hl str"> my</span> <span class="hl ipl">$pixbuf</span> <span class="hl str">= Gtk::Gdk::Pixbuf->new_from_file(</span><span class="hl ipl">$f</span><span class="hl str">) or die "</span>gtkcreate_png<span class="hl opt">:</span> missing png file <span class="hl kwb">$f</span><span class="hl str">";</span> <span class="hl str"> my (</span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height</span><span class="hl str">) = (</span><span class="hl ipl">$pixbuf</span><span class="hl str">->get_width(),</span> <span class="hl ipl">$pixbuf</span><span class="hl str">->get_height);</span> <span class="hl str"> my</span> <span class="hl ipl">$rw</span> <span class="hl str">= gtkroot();</span> <span class="hl str"> my</span> <span class="hl ipl">$pix</span> <span class="hl str">= new Gtk::Gdk::Pixmap(</span><span class="hl ipl">$rw,</span> <span class="hl str"></span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height,</span> <span class="hl str">16);</span> <span class="hl str"></span> <span class="hl ipl">$pixbuf</span><span class="hl str">->render_to_drawable_alpha(</span><span class="hl ipl">$pix,</span> <span class="hl str">0, 0, 0, 0,</span> <span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height,</span> <span class="hl str">'bilevel', 127, 'normal', 0, 0);</span> <span class="hl str"> my</span> <span class="hl ipl">$bit</span> <span class="hl str">= new Gtk::Gdk::Bitmap(</span><span class="hl ipl">$rw,</span> <span class="hl str"></span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height,</span> <span class="hl str">1);</span> <span class="hl str"></span> <span class="hl ipl">$pixbuf</span><span class="hl str">->render_threshold_alpha(</span><span class="hl ipl">$bit,</span> <span class="hl str">0, 0, 0, 0,</span> <span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height,</span> <span class="hl str">'127');</span> <span class="hl str"> return (</span><span class="hl ipl">$pix,</span> <span class="hl str"></span><span class="hl ipl">$bit</span><span class="hl str">);</span> <span class="hl str"> } else {</span> <span class="hl str"> die "</span>gtkcreate_png<span class="hl opt">:</span> cannot find a suitable library <span class="hl kwa">for</span> rendering png <span class="hl opt">(</span>imlib1 <span class="hl kwc">or</span> gdk_pixbuf<span class="hl opt">)</span><span class="hl str">";</span> <span class="hl str"> }</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub compose_pixbufs {</span> <span class="hl str"> my (</span><span class="hl ipl">$pixbuf,</span> <span class="hl str"></span><span class="hl ipl">$back_pixbuf_unaltered,</span> <span class="hl str"></span><span class="hl ipl">$alpha_threshold</span><span class="hl str">) =</span> <span class="hl ipl">@_</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$alpha_threshold</span> <span class="hl str">= 255 unless</span> <span class="hl ipl">$alpha_threshold</span><span class="hl str">;</span> <span class="hl str"> my (</span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height</span><span class="hl str">) = (</span><span class="hl ipl">$pixbuf</span><span class="hl str">->get_height,</span> <span class="hl ipl">$pixbuf</span><span class="hl str">->get_width);</span> <span class="hl str"> my</span> <span class="hl ipl">$back_pixbuf</span> <span class="hl str">= Gtk::Gdk::Pixbuf->new('rgb', 0, 8,</span> <span class="hl ipl">$height,</span> <span class="hl str"></span><span class="hl ipl">$width</span><span class="hl str">);</span> <span class="hl str"></span> <span class="hl str"></span> <span class="hl ipl">$back_pixbuf_unaltered</span><span class="hl str">->copy_area(0, 0,</span> <span class="hl ipl">$height,</span> <span class="hl str"></span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$back_pixbuf,</span> <span class="hl str">0, 0);</span> <span class="hl str"></span> <span class="hl ipl">$pixbuf</span><span class="hl str">->composite(</span><span class="hl ipl">$back_pixbuf,</span> <span class="hl str">0, 0,</span> <span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height,</span> <span class="hl str">0, 0, 1, 1, 'nearest',</span> <span class="hl ipl">$alpha_threshold</span><span class="hl str">);</span> <span class="hl str"></span> <span class="hl ipl">$back_pixbuf</span><span class="hl str">;</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub compose_with_back {</span> <span class="hl str"> my (</span><span class="hl ipl">$f,</span> <span class="hl str"></span><span class="hl ipl">$back_pixbuf_unaltered,</span> <span class="hl str"></span><span class="hl ipl">$alpha_threshold</span><span class="hl str">) =</span> <span class="hl ipl">@_</span><span class="hl str">;</span> <span class="hl str"> compose_pixbufs(gtkcreate_png_pixbuf(</span><span class="hl ipl">$f</span><span class="hl str">),</span> <span class="hl ipl">$back_pixbuf_unaltered,</span> <span class="hl str"></span><span class="hl ipl">$alpha_threshold</span><span class="hl str">);</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub xpm_d { my</span> <span class="hl ipl">$w</span> <span class="hl str">= shift; Gtk::Gdk::Pixmap->create_from_xpm_d(</span><span class="hl ipl">$w</span><span class="hl str">->window, undef,</span> <span class="hl ipl">@_</span><span class="hl str">) }</span> <span class="hl str"></span> <span class="hl str">sub fill_tiled {</span> <span class="hl str"> my (</span><span class="hl ipl">$w,</span> <span class="hl str"></span><span class="hl ipl">$pix,</span> <span class="hl str"></span><span class="hl ipl">$bitmap,</span> <span class="hl str"></span><span class="hl ipl">$x_back,</span> <span class="hl str"></span><span class="hl ipl">$y_back,</span> <span class="hl str"></span><span class="hl ipl">$width,</span> <span class="hl str"></span><span class="hl ipl">$height</span><span class="hl str">) =</span> <span class="hl ipl">@_</span><span class="hl str">;</span> <span class="hl str"> my (</span><span class="hl ipl">$x2,</span> <span class="hl str"></span><span class="hl ipl">$y2</span><span class="hl str">) = (0, 0);</span> <span class="hl str"> while (1) {</span> <span class="hl str"></span> <span class="hl ipl">$x2</span> <span class="hl str">= 0;</span> <span class="hl str"> while (1) {</span> <span class="hl str"></span> <span class="hl ipl">$pix</span><span class="hl str">->draw_pixmap(</span><span class="hl ipl">$w</span><span class="hl str">->style->bg_gc('normal'),</span> <span class="hl str"></span> <span class="hl ipl">$bitmap,</span> <span class="hl str">0, 0,</span> <span class="hl ipl">$x2,</span> <span class="hl str"></span><span class="hl ipl">$y2,</span> <span class="hl str"></span><span class="hl ipl">$x_back,</span> <span class="hl str"></span><span class="hl ipl">$y_back</span><span class="hl str">);</span> <span class="hl str"></span> <span class="hl ipl">$x2</span> <span class="hl str">+=</span> <span class="hl ipl">$x_back</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$x2</span> <span class="hl str">>=</span> <span class="hl ipl">$width</span> <span class="hl str">and last;</span> <span class="hl str"> }</span> <span class="hl str"></span> <span class="hl ipl">$y2</span> <span class="hl str">+=</span> <span class="hl ipl">$y_back</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$y2</span> <span class="hl str">>=</span> <span class="hl ipl">$height</span> <span class="hl str">and last;</span> <span class="hl str"> }</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">sub compute_icons {</span> <span class="hl str"> my (</span><span class="hl ipl">$fx,</span> <span class="hl str"></span><span class="hl ipl">$fy,</span> <span class="hl str"></span><span class="hl ipl">$decx,</span> <span class="hl str"></span><span class="hl ipl">$decy,</span> <span class="hl str"></span><span class="hl ipl">$interstice,</span> <span class="hl str"></span><span class="hl ipl">@tab</span><span class="hl str">) =</span> <span class="hl ipl">@_</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$nb</span> <span class="hl str">=</span> <span class="hl ipl">$#tab</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$nb_sav</span> <span class="hl str">=</span> <span class="hl ipl">$nb</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$index</span> <span class="hl str">= 0;</span> <span class="hl str"> my</span> <span class="hl ipl">@dx2</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">@dx</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">@dy</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$line_up</span> <span class="hl str">= 0;</span> <span class="hl str"> bcl_init:</span> <span class="hl str"></span> <span class="hl ipl">@dx2</span> <span class="hl str">= undef;</span> <span class="hl str"> bcl:</span> <span class="hl str"></span> <span class="hl ipl">@dx</span> <span class="hl str">= map{</span> <span class="hl ipl">$_</span><span class="hl str">->{dx} }</span> <span class="hl ipl">@tab</span><span class="hl str">[</span><span class="hl ipl">$index</span><span class="hl str">..</span><span class="hl ipl">$index+$nb</span><span class="hl str">];</span> <span class="hl str"></span> <span class="hl ipl">$dy</span><span class="hl str">[</span><span class="hl ipl">$index</span><span class="hl str">] = max(map{</span> <span class="hl ipl">$_</span><span class="hl str">->{dy} }</span> <span class="hl ipl">@tab</span><span class="hl str">[</span><span class="hl ipl">$index</span><span class="hl str">..</span><span class="hl ipl">$index+$nb</span><span class="hl str">]);</span> <span class="hl str"> foreach (0..</span><span class="hl ipl">$#dx</span><span class="hl str">) {</span> <span class="hl str"> if (</span><span class="hl ipl">$dx</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] ></span> <span class="hl ipl">$dx2</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">]) {</span> <span class="hl ipl">$dx2</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] =</span> <span class="hl ipl">$dx</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] } else {</span> <span class="hl ipl">$dx</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] =</span> <span class="hl ipl">$dx2</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] }</span> <span class="hl str"> }</span> <span class="hl str"> my</span> <span class="hl ipl">$line_size</span> <span class="hl str">= 0;</span> <span class="hl str"></span> <span class="hl ipl">$line_size</span> <span class="hl str">=</span> <span class="hl ipl">$decx</span> <span class="hl str">+ sum(</span><span class="hl ipl">@dx2</span><span class="hl str">) +</span> <span class="hl ipl">$nb</span> <span class="hl str">*</span> <span class="hl ipl">$interstice</span><span class="hl str">;</span> <span class="hl str"> if (</span><span class="hl ipl">$line_size</span> <span class="hl str">></span> <span class="hl ipl">$fx</span><span class="hl str">) {</span> <span class="hl str"></span> <span class="hl ipl">$index</span> <span class="hl str">= 0;</span> <span class="hl ipl">$nb</span><span class="hl str">--; goto bcl_init;</span> <span class="hl str"> }</span> <span class="hl str"></span> <span class="hl ipl">$nb</span> <span class="hl str">and</span> <span class="hl ipl">$line_up</span> <span class="hl str">= (</span><span class="hl ipl">$fx</span><span class="hl str">-</span><span class="hl ipl">$line_size</span><span class="hl str">)/(</span><span class="hl ipl">$nb+2</span><span class="hl str">);</span> <span class="hl str"></span> <span class="hl ipl">$index</span> <span class="hl str">+=</span> <span class="hl ipl">$nb+1</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$index</span> <span class="hl str"><=</span> <span class="hl ipl">$#tab</span> <span class="hl str">and goto bcl;</span> <span class="hl str"> my</span> <span class="hl ipl">@ret</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$n</span> <span class="hl str">= 0;</span> <span class="hl str"> my</span> <span class="hl ipl">$y</span> <span class="hl str">=</span> <span class="hl ipl">$decy</span><span class="hl str">;</span> <span class="hl str"> my</span> <span class="hl ipl">$x</span> <span class="hl str">=</span> <span class="hl ipl">$decx/2</span> <span class="hl str">+</span> <span class="hl ipl">$line_up</span><span class="hl str">;</span> <span class="hl str"> foreach (0..</span><span class="hl ipl">$nb_sav</span><span class="hl str">) {</span> <span class="hl str"></span> <span class="hl ipl">$ret</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">] = [</span><span class="hl ipl">$tab</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">],</span> <span class="hl ipl">$x,</span> <span class="hl str"></span><span class="hl ipl">$y</span><span class="hl str">];</span> <span class="hl str"></span> <span class="hl ipl">$x</span> <span class="hl str">+=</span> <span class="hl ipl">$dx2</span><span class="hl str">[</span><span class="hl ipl">$n</span><span class="hl str">] +</span> <span class="hl ipl">$interstice</span> <span class="hl str">+</span> <span class="hl ipl">$line_up</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$n++</span><span class="hl str">;</span> <span class="hl str"> if (</span><span class="hl ipl">$n</span> <span class="hl str">></span> <span class="hl ipl">$nb</span><span class="hl str">) {</span> <span class="hl str"></span> <span class="hl ipl">$n</span> <span class="hl str">= 0;</span> <span class="hl str"></span> <span class="hl ipl">$x</span> <span class="hl str">=</span> <span class="hl ipl">$decx/2</span> <span class="hl str">+</span> <span class="hl ipl">$line_up</span><span class="hl str">;</span> <span class="hl str"></span> <span class="hl ipl">$y</span> <span class="hl str">+= int(</span><span class="hl ipl">$dy</span><span class="hl str">[</span><span class="hl ipl">$_</span><span class="hl str">-</span><span class="hl ipl">$nb</span><span class="hl str">]/5)*5 + 15;</span> <span class="hl str"> }</span> <span class="hl str"> }</span> <span class="hl str"></span> <span class="hl ipl">@ret</span><span class="hl str">;</span> <span class="hl str">}</span> <span class="hl str"></span> <span class="hl str">1;</span> </code></pre></td></tr></table> </div> <!-- class=content --> <div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.1</a> (<a href='https://git-scm.com/'>git 2.21.0</a>) at 2025-03-02 21:20:09 +0000</div> </div> <!-- id=cgit --> </body> </html>