Re: OSX Status

Поиск
Список
Период
Сортировка
От Andreas Pflug
Тема Re: OSX Status
Дата
Msg-id 4255384C.4080205@pse-consulting.de
обсуждение исходный текст
Ответ на Re: OSX Status  ("Florian G. Pflug" <fgp@phlo.org>)
Список pgadmin-hackers
Florian G. Pflug wrote:
> Andreas Pflug wrote:
>
>> The inner notebook should be half the height of the outer notebook,
>> but this isn't so. Please use the attached dlgServer.xrc and
>> dlgServer.cpp and post the resulting image as well as the info debug
>> output it creates (three lines "Mac debug").
>
> Hm... seems you forgot to actually attach those files... - or they
> went to the bitbucket somewhere along the way.. ;-)

Oops, try these...

Regards,
Andreas
<?xml version="1.0" ?>
<resource>
  <object class="wxDialog" name="dlgServer">
    <title></title>
    <object class="wxNotebook" name="nbNotebook">
      <object class="notebookpage">
        <label>Properties</label>
        <object class="wxPanel" name="pnlProperties">
          <object class="wxStaticText" name="stName">
            <label>Address</label>
            <pos>1005,7d</pos>
          </object>
          <object class="wxTextCtrl" name="txtName">
            <pos>1005,5d</pos>
            <size>100,-1d</size>
          </object>
          <object class="wxTextCtrl" name="txtSomething">
            <value>some decent text</value>
            <pos>5,5d</pos>
            <size>100,-1d</size>
          </object>
          <object class="wxTextCtrl" name="txtSomething2">
            <value>some decent text</value>
            <pos>5,20d</pos>
            <size>100,-1d</size>
          </object>
          <object class="wxStaticText" name="stDescription">
            <label>Description</label>
            <pos>1005,22d</pos>
          </object>
          <object class="wxTextCtrl" name="txtDescription">
            <pos>1070,20d</pos>
            <size>135,-1d</size>
          </object>
          <object class="wxStaticText" name="stService">
            <label>Service</label>
            <pos>1005,37d</pos>
          </object>
          <object class="wxTextCtrl" name="txtService">
            <pos>1070,35d</pos>
            <size>135,-1d</size>
          </object>
          <object class="wxStaticText" name="stPort">
            <label>Port</label>
            <pos>1005,52d</pos>
          </object>
          <object class="wxTextCtrl" name="txtPort">
            <pos>1070,50d</pos>
            <size>26,-1d</size>
          </object>
          <object class="wxStaticText" name="stSSL">
            <label>SSL</label>
            <pos>1000,52d</pos>
          </object>
          <object class="wxComboBox" name="cbSSL">
            <pos>1120,50d</pos>
            <size>85,12d</size>
            <style>wxCB_READONLY|wxCB_DROPDOWN</style>
            <content/>
          </object>
          <object class="wxStaticText" name="stDatabase">
            <label>Initial DB</label>
            <pos>1005,67d</pos>
          </object>
          <object class="wxComboBox" name="cbDatabase">
            <pos>1070,65d</pos>
            <size>135,12d</size>
            <content/>
            <style>wxCB_DROPDOWN</style>
          </object>
          <object class="wxStaticText" name="stUsername">
            <label>Username</label>
            <pos>1005,82d</pos>
          </object>
          <object class="wxTextCtrl" name="txtUsername">
            <pos>1070,80d</pos>
            <size>135,-1d</size>
          </object>
          <object class="wxStaticText" name="stNeedPwd">
            <label>need password</label>
            <pos>1005,97d</pos>
          </object>
          <object class="wxCheckBox" name="chkNeedPwd">
            <label></label>
            <checked>1</checked>
            <pos>1070,95d</pos>
            <size>12,12d</size>
          </object>
          <object class="wxStaticText" name="stPassword">
            <label>Password</label>
            <pos>1005,112d</pos>
          </object>
          <object class="wxTextCtrl" name="txtPassword">
            <pos>1070,110d</pos>
            <style>wxTE_PASSWORD</style>
            <size>135,-1d</size>
          </object>
          <object class="wxNotebook" name="testNotebook">
            <object class="notebookpage">
              <label>testpanel</label>
              <object class="wxPanel" name="pnlX">
                <object class="wxTextCtrl" name="txt">
                  <value>some decent text</value>
                  <pos>5,5d</pos>
                  <size>80,-1d</size>
                </object>
              </object>
            </object>
            <pos>5,35d</pos>
            <size>100,75d</size>
          </object>
        </object>
        <selected>1</selected>
      </object>
      <pos>5,5d</pos>
      <size>200,150d</size>
    </object>
    <object class="wxButton" name="wxID_HELP">
      <label>Help</label>
      <pos>2,190d</pos>
    </object>
    <object class="wxTextCtrl" name="txt2">
      <value>some decent text</value>
      <pos>5,160d</pos>
      <size>80,-1d</size>
    </object>
    <object class="wxButton" name="wxID_OK">
      <label>OK</label>
      <default>1</default>
      <pos>113,190d</pos>
    </object>
    <object class="wxButton" name="wxID_CANCEL">
      <label>Cancel</label>
      <pos>166,190d</pos>
    </object>
    <size>218,200d</size>
    <style></style>
  </object>
</resource>//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
// RCS-ID:      $Id: dlgServer.cpp,v 1.16 2005/01/10 15:26:30 dpage Exp $
// Copyright (C) 2002 - 2005, The pgAdmin Development Team
// This software is released under the Artistic Licence
//
// dlgServer.cpp - PostgreSQL Database Property
//
//////////////////////////////////////////////////////////////////////////

// wxWindows headers
#include <wx/wx.h>

// App headers
#include "pgAdmin3.h"
#include "misc.h"
#include "frmMain.h"
#include "dlgServer.h"
#include "pgDatabase.h"

// Images
#include "images/server.xpm"


// pointer to controls
#define txtDescription  CTRL_TEXT("txtDescription")
#define txtService      CTRL_TEXT("txtService")
#define cbDatabase      CTRL_COMBOBOX("cbDatabase")
#define txtPort         CTRL_TEXT("txtPort")
#define cbSSL           CTRL_COMBOBOX("cbSSL")
#define txtUsername     CTRL_TEXT("txtUsername")
#define chkNeedPwd      CTRL_CHECKBOX("chkNeedPwd")
#define stPassword      CTRL_STATIC("stPassword")
#define txtPassword     CTRL_TEXT("txtPassword")


extern double libpqVersion;


BEGIN_EVENT_TABLE(dlgServer, dlgProperty)
    EVT_NOTEBOOK_PAGE_CHANGED(XRCID("nbNotebook"),  dlgServer::OnPageSelect)
    EVT_TEXT(XRCID("txtDescription"),               dlgProperty::OnChange)
    EVT_TEXT(XRCID("txtService"),                   dlgProperty::OnChange)
    EVT_TEXT(XRCID("cbDatabase"),                   dlgProperty::OnChange)
    EVT_COMBOBOX(XRCID("cbDatabase"),               dlgProperty::OnChange)
    EVT_TEXT(XRCID("txtPort")  ,                    dlgProperty::OnChange)
    EVT_TEXT(XRCID("txtUsername"),                  dlgProperty::OnChange)
    EVT_COMBOBOX(XRCID("cbSSL"),                    dlgProperty::OnChange)
    EVT_CHECKBOX(XRCID("chkNeedPwd"),               dlgServer::OnChangeNeedPwd)
    EVT_BUTTON(wxID_OK,                             dlgServer::OnOK)
END_EVENT_TABLE();


dlgServer::dlgServer(frmMain *frame, pgServer *node)
: dlgProperty(frame, wxT("dlgServer"))
{
    SetIcon(wxIcon(server_xpm));
    server=node;
    objectType = PG_SERVER;

    cbDatabase->Append(settings->GetLastDatabase());
    cbDatabase->SetSelection(0);
    txtPort->SetValue(NumToStr((long)settings->GetLastPort()));
    cbSSL->SetSelection(settings->GetLastSSL());
    txtUsername->SetValue(settings->GetLastUsername());
    chkNeedPwd->SetValue(true);

    wxLogInfo(wxT("MAC debug: Dialog: %s %d %d"), GetFont().GetNativeFontInfoDesc().c_str(), GetCharWidth(),
GetCharHeight());
    wxWindow *w;
    w=CTRL_NOTEBOOK("nbNotebook");
    wxLogInfo(wxT("MAC debug: outer notebook: %s %d %d"), w->GetFont().GetNativeFontInfoDesc().c_str(),
w->GetCharWidth(),w->GetCharHeight()); 

    w=CTRL_NOTEBOOK("testNotebook");
    wxLogInfo(wxT("MAC debug: inner notebook: %s %d %d"), w->GetFont().GetNativeFontInfoDesc().c_str(),
w->GetCharWidth(),w->GetCharHeight()); 
}


dlgServer::~dlgServer()
{
    if (!server)
    {
        settings->SetLastDatabase(cbDatabase->GetValue());
        settings->SetLastPort(StrToLong(txtPort->GetValue()));
        settings->SetLastSSL(cbSSL->GetSelection());
        settings->SetLastUsername(txtUsername->GetValue());
    }
}


pgObject *dlgServer::GetObject()
{
    return server;
}


void dlgServer::OnOK(wxCommandEvent &ev)
{
    // notice: changes active after reconnect

    EnableOK(false);


    if (server)
    {
        server->iSetName(GetName());
        server->iSetDescription(txtDescription->GetValue());
        if (txtService->GetValue() != server->GetServiceID())
        {
            mainForm->StartMsg(_("Checking server status"));
            server->iSetServiceID(txtService->GetValue());
            mainForm->EndMsg();
        }
        server->iSetPort(StrToLong(txtPort->GetValue()));
        server->iSetSSL(cbSSL->GetSelection());
        server->iSetLastDatabase(cbDatabase->GetValue());
        server->iSetUsername(txtUsername->GetValue());
        server->iSetNeedPwd(chkNeedPwd->GetValue());
        mainForm->execSelChange(server->GetId(), true);
        mainForm->GetBrowser()->SetItemText(item, server->GetFullName());
    }

    if (IsModal())
    {
        EndModal(wxID_OK);
        return;
    }
    else
        Destroy();
}


void dlgServer::OnPageSelect(wxNotebookEvent &event)
{
    // to prevent dlgProperty from catching it
}


wxString dlgServer::GetHelpPage() const
{
    return wxT("pgadmin/connect");
}


int dlgServer::GoNew()
{
    if (cbSSL->IsEmpty())
        return Go(true);
    else
    {
        CheckChange();
        return ShowModal();
    }
}


int dlgServer::Go(bool modal)
{
    cbSSL->Append(wxT(" "));

#ifdef SSL
    cbSSL->Append(_("require"));
    cbSSL->Append(_("prefer"));

    if (libpqVersion > 7.3)
    {
        cbSSL->Append(_("allow"));
        cbSSL->Append(_("disable"));
    }
#endif

    if (server)
    {
        cbDatabase->Append(server->GetDatabaseName());
        txtDescription->SetValue(server->GetDescription());
        txtService->SetValue(server->GetServiceID());
        txtPort->SetValue(NumToStr((long)server->GetPort()));
        cbSSL->SetSelection(server->GetSSL());
        cbDatabase->SetValue(server->GetDatabaseName());
        txtUsername->SetValue(server->GetUsername());
        chkNeedPwd->SetValue(server->GetNeedPwd());
        stPassword->Disable();
        txtPassword->Disable();
        if (connection)
        {
            txtName->Disable();
            cbDatabase->Disable();
            txtPort->Disable();
            cbSSL->Disable();
            txtUsername->Disable();
            chkNeedPwd->Disable();
        }
    }
    else
    {
        SetTitle(_("Add server"));
    }

    int rc=dlgProperty::Go(modal);

    CheckChange();

    return rc;
}


wxString dlgServer::GetPassword()
{
    if (chkNeedPwd->GetValue())
        return txtPassword->GetValue();
    return wxEmptyString;
}


pgObject *dlgServer::CreateObject(pgCollection *collection)
{
    wxString name=GetName();

    pgObject *obj=new pgServer(GetName(), txtDescription->GetValue(), cbDatabase->GetValue(),
        txtUsername->GetValue(), StrToLong(txtPort->GetValue()), !chkNeedPwd->GetValue(), cbSSL->GetSelection());

    return obj;
}


void dlgServer::OnChangeNeedPwd(wxCommandEvent &ev)
{
    if (!server)
        txtPassword->Enable(chkNeedPwd->GetValue());
    OnChange(ev);
}


void dlgServer::CheckChange()
{
    wxString name=GetName();
    bool enable=true;

    if (server)
    {
        enable =  name != server->GetName()
               || txtDescription->GetValue() != server->GetDescription()
               || txtService->GetValue() != server->GetServiceID()
               || StrToLong(txtPort->GetValue()) != server->GetPort()
               || cbDatabase->GetValue() != server->GetDatabaseName()
               || txtUsername->GetValue() != server->GetUsername()
               || cbSSL->GetSelection() != server->GetSSL()
               || chkNeedPwd->GetValue() != server->GetNeedPwd();
    }

    CheckValid(enable, !name.IsEmpty(), _("Please specify address."));
    CheckValid(enable, !txtDescription->GetValue().IsEmpty(), _("Please specify description."));
    CheckValid(enable, StrToLong(txtPort->GetValue()) > 0, _("Please specify port."));
    CheckValid(enable, !txtUsername->GetValue().IsEmpty(), _("Please specify user name"));

    EnableOK(enable);
}


wxString dlgServer::GetSql()
{
    return wxEmptyString;
}

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: "Florian G. Pflug"
Дата:
Сообщение: Re: OSX Status
Следующее
От: Patrick Hatcher
Дата:
Сообщение: OSX wxMac-2.5.4 error