MousePress Class Tham chiếu

Một phần của tài liệu Tìm hiểu về ngôn ngữ lập trình đa mô thức c (Trang 94 - 99)

Lớp đại diện cho thao tác nhấn chuột, bắt đầu cho một chuỗi ChangeShape hoặc AddShape.

#include <mousepress.hh> Sơ đồ kế thừa cho MousePress:

MousePress PaintOperation

Các hàm thành viên Public

• MousePress () Phương thức khởi tạo.

• qint32 type () const override Kiểu của thao tác vẽ

QRectF operate (QPainter &) const override Thực hiện thao tác.

• void save (QDataStream &) const override Lưu trạng thái của thao tác vẽ vào stream.

• void load (QDataStream &) override Đọc dữ liệu cho thao tác vẽ từ stream.

Các hàm Static Public

• static void setChangedPart (QSharedPointer< QImage > const &pointer) Thay đối giá trị của changedPart.

• static void setLastTopLef (QSharedPointer< QPointF > const &pointer) Thay đổi giá trị của lastTopLef.

Các thuộc tính Static Public

• static const qint32 Type = 8 Kiểu của thao tác.

Các kiểu Private

• typedef QThreadStorage

< QSharedPointer< QImage >> TPImage

typedef cho QThreadStorage<QSharedPointer<QImage>>

• typedef QThreadStorage

< QSharedPointer< QPointF >> TPPointF typedef cho

QThreadStorage<QSharedPointer<QPointF>>

Các thuộc tính Static Private

• static TPImage changedPart

Một phần của bức vẽ đã bị thay đổi bởi thao tác vẽ trước đó.

• static TPPointF lastTopLef

Điểm góc trên bên trái của phần bị thay đổi.

3.13.1 Mô tả chi tiết

Lớp đại diện cho thao tác nhấn chuột, bắt đầu cho một chuỗi ChangeShape hoặc AddShape.

Với một chuỗi ChangeShape, khi bắt đầu thao tác đầu tiên của chuỗi (tương ứng với việc người dùng nhấn chuột) thì các thành viên tĩnh ChangeShape::changedPart và ChangeShape::lastTopLef (vốn được chia sẽ cho tất cả các đối tượng ChangeShape thuộc cùng một Player) giữ giá trị của thao tác ChangeShape cuối cùng của chuỗi trước đó. Thực hiện thao tác ChangeShape đầu tiên của chuỗi mới sẽ vẽ lại changedPart này lên thiết bị vẽ, có thể làm sai kết quả. Thao tác MousePress thực hiện trước mỗi chuỗi ChangeShape có nhiệm vụ "làm sạch" các giá trị này (cụ thể là changedPart sẽ được đưa về một QImage rỗng).

Ngoài ra, một thao tác MousePress sẽ giúp nhận biết được tiếp theo sẽ là một chuỗi các thao tác ChangeShape hoặc AddShape mới. Điều này có tác dụng trong việc phân nhóm các thao tác thành 1

"thao tác có ích" (OpPair::effOp) Xem thêm

ChangeShape, AddShape, Player

Định nghĩa tại dòng 50 trong file mousepress.hh.

3.13.2 Thông tin về hàm thành viên

3.13.2.1 void MousePress::load ( QDataStream & stream ) [override], [virtual]

Đọc dữ liệu cho thao tác vẽ từ stream.

Thực chất phương thức này không làm gì. Type sẽ được đọc trước đó để xác định kiểu của thao tác vẽ.

Các tham số

stream luồng dữ liệu vào Xem thêm save (QDataStream &)

Thực hiện PaintOperation.

Định nghĩa tại dòng 68 trong file mousepress.cc.

3.13.2.2 QRectF MousePress::operate ( QPainter & painter ) const [override], [virtual]

Thực hiện thao tác.

"Làm sạch" changedPart để bắt đầu cho một chuỗi ChangeShape Các tham số

painter đối tượng vẽ sẽ thao tác

Giá trị trả về

Vùng bức vẽ sẽ bị thay đổi sau khi thực hiện

Thực hiện PaintOperation.

Định nghĩa tại dòng 51 trong file mousepress.cc.

3.13.2.3 void MousePress::save ( QDataStream & stream ) const [virtual]

Lưu trạng thái của thao tác vẽ vào stream.

Ghi Type vào stream.

Các tham số [override],

stream luồng dữ liệu ra Xem thêm load (QDataStream &)

Thực hiện PaintOperation.

Định nghĩa tại dòng 79 trong file mousepress.cc.

3.13.2.4 static void MousePress::setChangedPart ( QSharedPointer< QImage > const

& pointer ) [inline], [static]

Thay đối giá trị của changedPart.

Các tham số

pointer giá trị mới Xem thêm

changedPart

Định nghĩa tại dòng 128 trong file mousepress.hh.

3.13.2.5 static void MousePress::setLastTopLeft ( QSharedPointer< QPointF > const &

pointer ) [inline], [static]

Thay đổi giá trị của lastTopLef.

Các tham số

pointer giá trị mới Xem thêm

lastTopLef

Định nghĩa tại dòng 137 trong file mousepress.hh.

3.13.2.6 qint32 MousePress::type ( ) const [inline], [override], [virtual]

Kiểu của thao tác vẽ Thực chất trả về Type Giá trị trả về

qint32 kiểu của thao tác Xem thêm

Type

Thực hiện PaintOperation.

Định nghĩa tại dòng 76 trong file mousepress.hh.

3.13.3 Thông tin về Member Data

3.13.3.1 MousePress::TPImage MousePress::changedPart [static], [private]

Một phần của bức vẽ đã bị thay đổi bởi thao tác vẽ trước đó.

Được chia sẻ cho tất cả các đối tượng kiểu ChangeShape và MousePress thuộc cùng một Player.

Xem thêm

ChangeShape::changedPart, Player::changedPart

Định nghĩa tại dòng 109 trong file mousepress.hh.

3.13.3.2 MousePress::TPPointF MousePress::lastTopLeft [static], [private]

Điểm góc trên bên trái của phần bị thay đổi.

Được chia sẻ cho tất cả các đối tượng kiểu ChangeShape và MousePress thuộc cùng một Player.

Xem thêm

ChangeShape::lastTopLef, Player::lastTopLef

Định nghĩa tại dòng 117 trong file mousepress.hh.

Thông tin cho class được biên soạn từ các file sau đây:

• src/paintoperation/mousepress.hh

• src/paintoperation/mousepress.cc

Một phần của tài liệu Tìm hiểu về ngôn ngữ lập trình đa mô thức c (Trang 94 - 99)

Tải bản đầy đủ (DOC)

(152 trang)
w