- Visual C++源码
- Visual Basic源码
- C++ Builder源码
- Java源码
- Delphi源码
- C/C++源码
- PHP源码
- Perl源码
- Python源码
- Asm源码
- Pascal源码
- Borland C++源码
- Others源码
- SQL源码
- VBScript源码
- JavaScript源码
- ASP/ASPX源码
- C#源码
- Flash/ActionScript源码
- matlab源码
- PowerBuilder源码
- LabView源码
- Flex源码
- MathCAD源码
- VBA源码
- IDL源码
- Lisp/Scheme源码
- VHDL源码
- Objective-C源码
- Fortran源码
- tcl/tk源码
- QT源码
PasswordDialog.pm.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:
外挂编程
开发平台:
Windows_Unix
- #########################################################################
- # OpenKore - WxWidgets Interface
- # Password input dialog
- #
- # Copyright (c) 2006,2007 OpenKore development team
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- #
- # $Revision$
- # $Id$
- #
- #########################################################################
- package Interface::Wx::PasswordDialog;
- use strict;
- use Wx ':everything';
- use Wx::Event qw(EVT_TEXT_ENTER EVT_BUTTON);
- use base qw(Wx::Dialog);
- use constant DEFAULT_WIDTH => 250;
- sub new {
- my ($class, $parent, $message, $title) = @_;
- $title = 'Enter password' if (!defined($title));
- my $self = $class->SUPER::new($parent, -1, $title);
- $self->_buildGUI($message);
- return $self;
- }
- sub getValue {
- my ($self) = @_;
- return $self->{text}->GetValue;
- }
- sub GetValue {
- &getValue;
- }
- sub _buildGUI {
- my ($self, $message) = @_;
- my ($sizer, $label, $text, $buttonSizer, $ok, $cancel);
- $sizer = new Wx::BoxSizer(wxVERTICAL);
- $label = new Wx::StaticText($self, -1, $message);
- $sizer->Add($label, 0, wxALL, 8);
- $text = new Wx::TextCtrl($self, -1, '', wxDefaultPosition,
- [DEFAULT_WIDTH, -1], wxTE_PASSWORD | wxTE_PROCESS_ENTER);
- $sizer->Add($text, 0, wxLEFT | wxRIGHT | wxGROW, 8);
- EVT_TEXT_ENTER($self, $text->GetId, &_onTextEnter);
- $sizer->AddSpacer(12);
- $buttonSizer = new Wx::BoxSizer(wxHORIZONTAL);
- $sizer->Add($buttonSizer, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT | wxBOTTOM, 8);
- $ok = new Wx::Button($self, -1, 'OK', wxDefaultPosition, wxDefaultSize);
- $ok->SetDefault();
- $buttonSizer->Add($ok, 1, wxRIGHT, 8);
- EVT_BUTTON($self, $ok->GetId, &_onOK);
- $cancel = new Wx::Button($self, -1, 'Cancel');
- $buttonSizer->Add($cancel, 1);
- EVT_BUTTON($self, $cancel->GetId, &_onCancel);
- $self->SetSizerAndFit($sizer);
- $self->{text} = $text;
- }
- sub _onTextEnter {
- my ($self) = @_;
- $self->EndModal(wxID_OK);
- }
- sub _onOK {
- my ($self) = @_;
- $self->EndModal(wxID_OK);
- }
- sub _onCancel {
- my ($self) = @_;
- $self->EndModal(wxID_CANCEL);
- }
- 1;