Informazio orokorra
Adibideak
Pantailak
Konparazioak
Eskaerak
Download
Documentation
Bazaar
Estatuko eta Laneko Plan
Maiz egiten diren galderak
Idazlea eta Lizentzia
Forums
U++ finantzaketa
Bilatu web honetan
Language
euskara











SourceForge.net Logo



AK

 

The definition and use of redefinable key accelerators

 

 

AK.h

 

#ifndef _AK_AK_h

#define _AK_AK_h

 

#include <CtrlLib/CtrlLib.h>

 

using namespace Upp;

 

#define KEYGROUPNAME "AK"

#define KEYNAMESPACE AKKeys

#define KEYFILE      <AK/AK.key>

#include             <CtrlLib/key_header.h>

 

#define KEYGROUPNAME "Setup"

#define KEYFILE      <AK/Setup.key>

#include             <CtrlLib/key_header.h>

 

class App : public TopWindow {

    MenuBar menubar;

 

    void Fn(String text);

    void AkMenu(Bar& menu);

    void SetupMenu(Bar& menu);

    void MainMenu(Bar& menu);

    void SetBar();

    void SetLang(int lang);

 

public:

    typedef App CLASSNAME;

    App();

};

 

#endif

 

 

 

main.cpp

 

#include "AK.h"

 

#define KEYGROUPNAME "AK"

#define KEYNAMESPACE AKKeys

#define KEYFILE      <AK/AK.key>

#include             <CtrlLib/key_source.h>

 

using namespace AKKeys;

 

void App::Fn(String text)

{

    PromptOK(text);

}

 

void App::AkMenu(Bar& menu)

{

    menu.Add(AK_FN1, THISBACK1(Fn, "1"));

    menu.Add(AK_FN2, THISBACK1(Fn, "2"));

    menu.Add(AK_EXIT, THISBACK(Close));

}

 

void App::MainMenu(Bar& menu)

{

    menu.Add("AK", THISBACK(AkMenu));

    menu.Add(t_("Setup"), THISBACK(SetupMenu));

}

 

App::App()

{

    SetLang(LNGC_('E','N','U','S', CHARSET_UTF8));

    AddFrame(menubar);

    menubar.Set(THISBACK(MainMenu));

    Sizeable();

}

 

GUI_APP_MAIN

{

    String keyfile = ConfigFile("keys.key");

    RestoreKeys(LoadFile(keyfile));

    App().Run();

    SaveFile(keyfile, StoreKeys());

}

 

 

 

setup.cpp

 

#include "AK.h"

 

#define KEYGROUPNAME "Setup"

#define KEYFILE      <AK/Setup.key>

#include             <CtrlLib/key_source.h>

 

void App::SetLang(int lang)

{

    SetLanguage(lang);

    menubar.Set(THISBACK(MainMenu));

}

 

void App::SetupMenu(Bar& menu)

{

    menu.Add(AK_ENGLISH, THISBACK1(SetLang, LNGC_('E','N','U','S', CHARSET_UTF8)))

        .Radio(GetCurrentLanguage() == LNGC_('E','N','U','S', CHARSET_UTF8));

    menu.Add(AK_CZECH, THISBACK1(SetLang, LNGC_('C','S','C','Z', CHARSET_UTF8)))

        .Radio(GetCurrentLanguage() == LNGC_('C','S','C','Z', CHARSET_UTF8));

    menu.Separator();

    menu.Add(AK_KEYS, callback(EditKeys));

}

 

 

 

ak.icpp

 

#include "AK.h"

 

#define  TFILE <AK/ak.t>

#include <Core/t.h>

 

 

 

Group1.key

 

KEY(UNTRANSLATED, "Untranslated", K_CTRL_U)

KEY(TRANSLATED, t_("Translated"), K_CTRL_S)

 

 

 

Setup.key

 

KEY(ENGLISH, t_("English"), K_CTRL_E)

KEY(CZECH, t_("Czech"), K_CTRL_R)

KEY(KEYS, t_("Setup keys"), K_CTRL_K)

 

 

 

AK.key

 

KEY(FN1, "First function", K_CTRL_M)

KEY(FN2, t_("Second function"), K_CTRL_W)

KEY(EXIT, t_("Exit"), K_CTRL_Q)

 

 

 

 

Web gune hau ere english, català, čeština, deutsch, español, français, română, русский, 中文(简体) eta 中文(繁體)-ez. Lagundu nahi duzu?