SettingsDialog::SettingsDialog(const Settings& settings, qulonglong currModBase, QWidget* parent) : QDialog(parent) , m_UI(new Ui::SettingsDialog) , m_PaletteChanged(false) { m_UI->setupUi(this); CHECKED_CONNECT(connect(m_UI->bTestConnection, SIGNAL(clicked()), this, SIGNAL(testConnection()))); CHECKED_CONNECT(connect(m_UI->bDiscard, SIGNAL(clicked()), this, SLOT(reject()))); const QVariantList prevHosts = GlobalSettingsManger::instance(). value(GSK_PrevEnteredOllyHosts).toList(); m_UI->cbOllyIP->clear(); foreach(const QVariant& v, prevHosts) { const QString sv = v.toString().trimmed(); if (sv.isEmpty()) continue; m_UI->cbOllyIP->addItem(sv); } const QString currHostVal = QString::fromStdString(settings.host); int currHostIdx = m_UI->cbOllyIP->findText(currHostVal); if (currHostIdx == -1) { m_UI->cbOllyIP->insertItem(0, currHostVal); } m_UI->cbOllyIP->setCurrentIndex(m_UI->cbOllyIP->findText(currHostVal)); m_UI->sbOllyPort->setValue(settings.port); m_UI->leRemoteModuleBase->setText(QString("0x%1").arg(settings.remoteModBase, sizeof(ea_t) * 2, 16, QChar('0'))); m_UI->leRemoteModuleBase->setToolTip(QString("Current IDA DB's module base is 0x%1.").arg(currModBase, sizeof(ea_t) * 2, 16, QChar('0'))); m_UI->gbEnabledSync->setChecked(settings.enabled); m_UI->chDemangleNames->setChecked(settings.demangle); m_UI->chLocalLabels->setChecked(settings.localLabels); m_UI->chPerformPEAnalysis->setChecked(settings.analysePEHeader); m_UI->chPostProcessFixCallJumps->setChecked(settings.postProcessFixCallJumps); m_UI->chNonCodeNames->setChecked(settings.nonCodeNames); m_UI->cbOverwriteWarning->setCurrentIndex(settings.overwriteWarning); m_UI->cbCommentsSync->setCurrentIndex(settings.commentsSync); QLabel* const lVer = new QLabel(m_UI->tabWidget); lVer->setText(QString("v %1").arg(LABELESS_VER_STR)); lVer->setStyleSheet("color: rgb(0x8a, 0x8a, 0x8a);"); QGraphicsDropShadowEffect* const effect = new QGraphicsDropShadowEffect(lVer); effect->setBlurRadius(5); effect->setOffset(0); effect->setColor(Qt::white); lVer->setGraphicsEffect(effect); m_UI->tabWidget->setCornerWidget(lVer); setUpPalette(); setFixedSize(size()); adjustSize(); setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); }
void LCD_dolinesegment(Lcd *x, Symbol *s, short argc, Atom *argv) { PaletteHandle pH; RGBColor fColor; GrafPort *gp; RgnHandle cur; long fromx,fromy,tox,toy,color; short save; EnterCallback(); fromx = argv->a_w.w_long; fromy = (argv+1)->a_w.w_long; tox = (argv+2)->a_w.w_long; toy = (argv+3)->a_w.w_long; color = (argv+4)->a_w.w_long; #ifdef debug post("Segment"); #endif gp = patcher_setport(x->lcd_box.b_patcher); if (gp) { if (!box_nodraw((void *)x)) { // save=lockout_set(1); MoveTo(x->lcd_box.b_rect.left+1+(short)fromx,x->lcd_box.b_rect.top+1+(short)fromy); x->lcd_where.h = (short)fromx; x->lcd_where.v = (short)fromy; if (color) x->lcd_pIndex = (short)color & (numPaletteColors-1); cur = NewRgn(); GetClip(cur); SetClip(x->lcd_region); setUpPalette(x,&fColor,&pH); // LCD_MoveTo(x,(long)(x->lcd_where.h),(long)(x->lcd_where.v)); LineTo(x->lcd_box.b_rect.left+1+(short)tox,x->lcd_box.b_rect.top+1+(short)toy); x->lcd_where.h = (short)tox; x->lcd_where.v = (short)toy; restorePalette(x,&fColor,&pH); SetClip(cur); DisposeRgn(cur); // lockout_set(save); } SetPort(gp); } ExitCallback(); }
void LCD_doframeOval(Lcd *x, Symbol *s, short argc, Atom *argv) { long left, top, right, bottom, color; PaletteHandle pH; RGBColor fColor; GrafPort *gp; RgnHandle cur; Rect b,r; EnterCallback(); // I'm suspicious of (argv++)->thing in Code Warrior left = argv->a_w.w_long; top = (argv+1)->a_w.w_long; right = (argv+2)->a_w.w_long; bottom = (argv+3)->a_w.w_long; color = (argv+4)->a_w.w_long; #ifdef debug post("frameOval"); #endif gp = patcher_setport(x->lcd_box.b_patcher); if (gp) { if (!box_nodraw((void *)x)) { if (color) // sde 11/1 x->lcd_pIndex = (short)color & (numPaletteColors-1); cur = NewRgn(); GetClip(cur); SetClip(x->lcd_region); setUpPalette(x,&fColor,&pH); r = x->lcd_box.b_rect; b.left = r.left + (short)left; b.top = r.top + (short)top; b.right = r.left + (short)right; b.bottom = r.top + (short)bottom; FrameOval(&b); restorePalette(x,&fColor,&pH); SetClip(cur); DisposeRgn(cur); } SetPort(gp); } ExitCallback(); }
void LCD_doLineTo(Lcd *x, Symbol *s, short argc, Atom *argv) { PaletteHandle pH; RGBColor fColor; GrafPort *gp; RgnHandle cur; long deltaX, deltaY; EnterCallback(); deltaX = argv->a_w.w_long; deltaY = (argv+1)->a_w.w_long; #ifdef debug post("LineTo"); #endif gp = patcher_setport(x->lcd_box.b_patcher); if (gp) { if (!box_nodraw((void *)x)) { cur = NewRgn(); GetClip(cur); SetClip(x->lcd_region); setUpPalette(x,&fColor,&pH); LCD_MoveTo(x,(long)(x->lcd_where.h),(long)(x->lcd_where.v)); LineTo(x->lcd_box.b_rect.left+1+(short)deltaX,x->lcd_box.b_rect.top+1+(short)deltaY); x->lcd_where.h = (short)deltaX; x->lcd_where.v = (short)deltaY; restorePalette(x,&fColor,&pH); SetClip(cur); DisposeRgn(cur); } SetPort(gp); } ExitCallback(); }
void LCD_drawTxt(Lcd *x, char *stng) /* drawn in response to update event */ { GrafPort *gp; short chars; Rect r,area; PaletteHandle pH; RGBColor fColor; RgnHandle cur; short font,size; gp = patcher_setport(x->lcd_box.b_patcher); if (gp) { font = gp->txFont; size = gp->txSize; r = x->lcd_box.b_rect; if (x->f_width == -1) { /* window not visible before */ if (!x->font && !x->f_size) { x->font = font; x->f_size = size; } LCD_calcfont(x); LCD_resize(x); } TextFont(x->font); TextSize(x->f_size); if ((x->lcd_row+1)<=x->rows) { if (!box_nodraw((void *)x)) { /* chars = x->cols-x->lcd_col; DDZ removed this stuff */ if (/* chars > 0 */ 1) { #ifdef never MoveTo( (x->lcd_col*x->f_width)+r.left+BORDER_WIDTH, (x->lcd_row+1)*x->f_height+(x->lcd_row)*x->f_lineSpace+r.top-x->f_descent); /* erase area where we will write */ area.top = (x->lcd_row*x->f_height)+r.top+BORDER_HEIGHT; area.bottom = ((x->lcd_row+1)*x->f_height)+r.top+BORDER_HEIGHT; area.left = (x->lcd_col*x->f_width)+r.left+BORDER_WIDTH; area.right = ((x->lcd_col+chars)*x->f_width)+r.left+BORDER_WIDTH; #else MoveTo(x->lcd_where.h+r.left+BORDER_WIDTH,x->lcd_where.v+r.top); #endif /* chars = MIN(chars,(short)strlen(stng)); */ chars = strlen(stng); /* DDZ just made it draw any string */ cur = NewRgn(); GetClip(cur); SetClip(x->lcd_region); #ifdef never EraseRect(&area); #endif setUpPalette(x,&fColor,&pH); DrawText(stng,0,chars); x->lcd_where.h += TextWidth(stng,0,chars); restorePalette(x,&fColor,&pH); SetClip(cur); DisposeRgn(cur); x->lcd_col += chars; /* advance cursor */ if (x->lcd_col > x->cols-1 ) x->lcd_col--; /* make it stick to last col */ } } } TextFont(font); TextSize(size); SetPort(gp); } }
void LCD_doreson(Lcd *x, Symbol *s, short argc, Atom *argv) { short i,x1,y1,y2,height,width; double freq,ampl,band; Rect r; PaletteHandle pH; RGBColor fColor; GrafPort *gp; RgnHandle cur; Rect b; double xscale; double bscale; double yscale; EnterCallback(); if((argc%3)!=0) { post("bad number of resonance parameters %d", argc); } else { gp = patcher_setport(x->lcd_box.b_patcher); if (gp) { if (!box_nodraw((void *)x)) { cur = NewRgn(); GetClip(cur); SetClip(x->lcd_region); setUpPalette(x,&fColor,&pH); r = x->lcd_box.b_rect; width = r.right-r.left; height = r.bottom-r.top; xscale=width/(x->reson_sampleRate); bscale = (0.1*height); yscale = height/x->reson_spectScale; for (i=0;i<argc;i++) { freq = (double)argv[i].a_w.w_float; ampl =argv[++i].a_w.w_float; if(ampl<0.0f) ampl = -ampl; ampl = 20.0*log10(ampl); band = (double)argv[++i].a_w.w_float; if(freq>0.0 && freq<(x->reson_sampleRate) && band>0.0) { x1 = (freq*xscale); { float ydisp = ampl*yscale; if(ydisp>(r.bottom-r.top)) y1 = r.bottom -r. top; else y1= ydisp; } y2 = bscale*3.1415926/sqrt(MINMAX(band,0.1,40.0)); if (x->lcd_debug) post("x1: %d y1: %d y2: %d",x1,y1,y2); MoveTo(r.left+x1,r.top+y1); Line(0,y2); } } restorePalette(x,&fColor,&pH); SetClip(cur); DisposeRgn(cur); } SetPort(gp); } } ExitCallback(); }